전체 글 (256) 썸네일형 리스트형 Single Tone Pattern // System a = new System(); --> 이걸 쓰지 못한다는 이야기 // System 클래스의 생성자는 private으로 선언되어 있어 직접 인스턴스를 생성할 수 없음 // 따라서 위와 같이 new 연산자를 사용하여 System 클래스의 인스턴스를 생성하려고 하면 컴파일 오류가 발생! // System 클래스는 정적 메서드와 필드로 구성되어 있으며, 인스턴스 생성 없이도 이를 사용할 수 있음 // (앞의 static같은 느낌?) SomeComponent sc1 = SomeComponent.getInstance(); // 첫번째 instance 호출시에만 instance가 호출되고, 그 후에는 항상 같은 인스턴스를 반환 ★★★ sc1.test(); SomeComponent sc2 = Som.. Final // final : 변경 불가한 메모리 (1회 생성만 가능하다!) // 변수 앞에 쓰는 경우 : 상수를 표현할 때 // 네이버같은 곳에서 다양한 사람들이 거대한 하나의 코드를 수십년간 유지/보수 해야할 경우 // 누군가가 마음대로 코드를 변경하지 못하도록 // 코드의 안정성을 높이고 의도치 않은 변경을 방지할 수 있음 public class P5_final { public static void main(String[] args) { final String ip = "111.1111.111111"; System.out.println(ip); System.out.println(ip); System.out.println(ip); // ip = "111.2222.222222"; // --> 중간에 누군가가 임의.. Static2 public class P4_static2_Again { public static void main(String[] args) { new Q1().test1();// 안녕하세요 : 0 AAAA a = new AAAA(); a.v1 = 20;// 인스턴스 변수 선언 // a.v2 = 30;--> 이렇게 안하기로 했지? AAAA.v2 = 30;// 메서드 변수 선언 new Q1().test1();// 안녕하세요 : 30 System.out.println(AAAA.v2);// 50 new Q1().test1();// 안녕하세요 : 50 } } class AAAA{ int v1; static int v2; int v3; void test1() { System.out.println("안녕"); } static v.. Static // 1. 매소드 오버로딩 --> 내가 사용할 일은 거의 없겠지... // 생성자 오버로딩처럼 -> 메소드명을 똑같이 선언할 수 있다 // 파라메터를 어떻게 선언해주냐에 따라서 다르게 출력되겠지 new AAA().test1();// 안녕0 new AAA().test1(98);// 반가워980 // ----> 이렇게 호출하면 v2는 아직 0이니까!!!!! 98+0 이렇게 나오는구나. System.out.println(AAA.v2);// 0 // 2. static : 클래스 수준에서 공유되는 인스턴스 변수를 선언하는 것, 메소드 영역에 메모리가 생성된다 ★★★ // 클래스의 모든 인스턴스가 이 변수를 공유하므로 한 인스턴스에서 값을 변경하면 // 다른 모든 인스턴스에서도 해당 값을 공유함!!!! // 인스턴.. Star UML // 더블클릭 -> add attribute : 속성 선언 (name, age, score) // 오른쪽 밑 -> properties : 속성의 타입 써주기 // visiblity -> public(+), private(-) 설정할 수 있음 // 더블클릭 -> add operation : 메서드 선언 // 왼쪽 밑 -> direct association : School이 Student를 사용하고 있다 // 왼쪽 밑 -> 1. compostion(-----◆) : School과 Student가 강하게 연결되어 있다 (= 결합도가 높다) // 왼쪽 밑 -> 2. aggregation(----◇) : School과 Student가 약하게 연결되어 있다 (= 결합도가 비교적 낮다) // 왼쪽 밑 -> 3. de.. Class review public class P1_classReviewAgain { public static void main(String[] args) { TestClass t1 = new TestClass(10, "문자열"); TestClass t2 = new TestClass(20, "무우우운자아아열"); int a = 10; t1.doProcess(a);// 이렇게 시행 : 10 t2.doProcess(a);// 이렇게 시행 : 20 int result1 = t1.doProcess(a); // 이렇게 시행 : 10 int result2 = t2.doProcess(a); // 이렇게 시행 : 20 System.out.println("Result 1: " + result1); // Result 1: 13 System.ou.. class study - Private Account public class P2_privateAccountEx { public static void main(String[] args) { Test2 t2 = new Test2(); t2.a = 10; //t2.b = 20;--> 컴파일 오류가 생김. t2.c = 30; //t2.process1();--> 컴파일 오류가 생김. t2.process2(); // =================== 계좌관리 =========================== //Account a1 = new Account();// 한조의 계좌 생성 //a1.name = "한조"; // //Account a2 = new Account();// 트레의 계좌 생성 //a2.name = "트레"; //a1.balance += 10000;.. move memory public class P1_moveMemory { public static void main(String[] args) { int a = 10; Test1 t1 = new Test1(); // t1이라는 참조변수가 Test1의 주소값을 받아내는 과정 t1.do1(a); // t1이 -> 접속한다 -> do1 메서드에 (메서드 호출 문법) System.out.println(a + "이것은 main의 a값. 변수를 메서드에서 바꿔도 얘는 변하지 않는다는거"); t1.do1(a); } } class Test1{ void do1(int a){// ★★★ main에 int a = 10을 클래스로 가져오는 방법 // main의 a와 다른 메모리의 a (수를 가져올 수 있음) System.out.println(a .. 이전 1 ··· 19 20 21 22 23 24 25 ··· 32 다음