JAVA (158) 썸네일형 리스트형 싱글톤 패턴 public static void main(String[] args) { SomeComponent sc1 = SomeComponent.getInstance();// 첫번째 instance 호출시에만 instance가 호출되고, 그 후에는 항상 같은 인스턴스를 반환 ★★★ sc1.test(); SomeComponent sc2 = SomeComponent.getInstance(); sc2.test(); // Component클래스 // 네이버처럼 수십년동안 다양한 사람들이 하나의 거대한 .코드를 유지/보수 해야할 때 // ===================================== // 싱글톤 // System a = new System();--> 이걸 쓰지 못한다는 이야기 // System 클래스의.. final // final : 변경 불가한 메모리 (1회 생성만 가능하다! // 변수 앞에 쓰는 경우 : 상수를 표현할 때 // 네이버같은 곳에서 다양한 사람들이 거대한 하나의 코드를 수십년간 유지/보수 해야할 경우 // 누군가가 마음대로 코드를 변경하지 못하도록 // 코드의 안정성을 높이고 의도치 않은 변경을 방지할 수 있음 final String ip = "111.1111.111111"; System.out.println(ip); System.out.println(ip); System.out.println(ip); // ip = "111.2222.222222"; --> 중간에 누군가가 임의로 변경하지 못함! (내 실수를 방지할 수도 있겠지 ) System.out.println(ip); System.out.pri.. static 2 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 void test1(int a) { System.out.prin.. method 오버로딩 & static변수 class AAA{ int v1;// 인스턴스 변수 static int v2;// static을 쓰면 변수가 기울어진다 (= 클래스 변수) int v3; void test1() { System.out.println("안녕" + v2);// 여기에 v2를 사용하면 0으로 출력되는군!!! ★ } static void test1(int a) { // this. ---> this는 인스턴수 변수에서 쓰는 아이. 클래스 변수에서 못쓰겠지? System.out.println("반가워" + a + v2);// v2를 바로 사용할 수 있음 ★★★ } } # Main영역 1. 매소드 오버로딩 --> 내가 사용할 일은 거의 없겠지... // 생성자 오버로딩처럼 -> 메소드명을 똑같이 선언할 수 있다 (파라메터를 어떻게 선.. 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 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.out.println("Result 2: " + result2); // Result 2: 23 t1.doProcess(a);// 이렇게 시행.. 문자열 비교 String[] str3 = new String [3]; String[] str4 = new String [4]; str3[2] = "안녕"; str4[2] = "안녕"; if(str3[2] == str4[2]) { System.out.println("같다"); }else { System.out.println("다르다"); }// A. 같다. (안녕이라는 글자 자체에 주소값을 설정해둔거임) String str1 = new String("안녕"); String str2 = new String("안녕"); System.out.println(str1);// 안녕하세요 System.out.println(str2);// 안녕하세요 if(str1 == str2) {// A. 다르다. (두 참조변수의 주소값이 다르니.. 참조 주소 String str1 = "안녕하세요"; String str2 = "안녕하세요"; System.out.println(str1); System.out.println(str2); if(str1 == str2) { System.out.println("같다"); }else { System.out.println("다르다"); } --> str1, str2 둘다 참조주소임 // heap메모리에 안녕하세요 라는 글자를 주소값을 설정해놓음. (문법적으로) 효율적으로 하기위해! // ---> 문자를 비교하는게 아니다. (주소값을 비교할 의도가 아닌이상 이렇게 하지마세요 ★★★) 이전 1 ··· 12 13 14 15 16 17 18 ··· 20 다음