JAVA/개념
-
day10 #싱글턴, 내부클래스의 종류, 익명 클래스, 예외 처리JAVA/개념 2022. 2. 24. 12:38
1. 싱글턴(싱글 인스턴스) - spring framework에서 많이 사용됨 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 객체를 만들어 사용하는 디자인 패턴. 즉, 생성자의 호출이 반복적으로 이뤄져도 실제로 생성되는 객체는 최초 생성된 객체를 반환 해주는 것 쓰는 이유 : 한번의 객체 생성으로 재 사용이 가능하기 때문에 메모리 낭비를 방지할 수 있다. 또한 싱글턴으로 생성된 객체는 무조건 한번 생성으로 전역성을 띄기에 다른 객체와 공유가 용이 ㄴbut 싱글턴으로 만든 객체의 역할이 복잡한 경우 해당 싱글턴 객체를 사용하는 다른 객체간의 결함도가 높아져서 객체 지향 설계 원칙에 어긋나게 된다. 또한 해당 싱글턴 객체를 수정할 경우 싱글턴 객체를 사용하는 곳에서 사이드 이팩트 발..
-
day08 #상속과 접근제어자, super();, this();JAVA/개념 2022. 2. 17. 10:13
*정리 this : 자기자신을 가르키는 객체 this() : 내 생성자 안에서 나의 다른 생성자를 호출 super : 부모의~부모가 가진~ super() : 부모의 생성자를 호출하는 애 static메소드에서 this 사용 불가 super() : 부모클래스의 생성자를 호출해주는 명령어. 자식생성자 안에서 사용 가능, 첫번째 명령문이어야 함 ->생성자 안에서 this메소드와 super메소드 같이 사용 불가 final-클래스 : 이 클래스는 상속 불가 -변수 선언 : 변수 앞에 붙으면 그 변수는 상수가 됨. 값 변경 불가. . . . 상속과 접근제어자 2) 수퍼클래스의 default 멤버 서브클래스라도 다른 패키지면 접근 불가 4) 수퍼클래스의 protected 멤버 같은 패키지의 모든 클래스 접근 가능 패키..
-
day04 #배열: for-each, 업그레이드 for문JAVA/개념 2022. 2. 16. 01:17
for(변수타입 변수 : 배열명) { syso(변수) } 1 2 3 4 5 6 7 8 9 10 String[] strs = {"abc", "def", "ghi"}; for( String y : strs) { System.out.println(y); } /*콘솔값 abc def ghi */ Colored by Color Scripter cs 배열의 항목 수만큼 실행부분을 반복함 매 반복시마다 배열의 항목을 순서대로 꺼내 변수(위의 경우 y)에 자동으로 대입해줌!!
-
day07 #상속과 생성자, this, 객체 배열, 접근지정자, 캡슐화JAVA/개념 2022. 2. 15. 16:55
자바는 기본 생성자가 없는 상위클래스를 상속받는 경우 슈퍼클래스의 생성자(super();)를 호출해야한다는 규칙이 있다. 아니면 상위클래스(부모클래스)에 기본생성자 구현 (ex. Child extends Parents인 경우 Parents() {} 명시적으로 써놓으란 것) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class Animal { int age; public Animal(int age) { this.age = age; } } public class Dog extends Animal { String name; public Dog(String name, int age) { super(age); this.name = name; } } Colored by ..
-
day05 #클래스, 인스턴스 멤버JAVA/개념 2022. 2. 12. 21:55
멤버 = 변수와 메소드 클래스 영역 안에는 변수와 메소드만.(+변수에 초기값 대입) - if for syso 등 x 인스턴스 메소드(void)는 클래스 멤버에 접근할 수 있다. 클래스 메소드(static void)는 인스턴스 멤버에 접근할 수 없다. (클래스는 항상 인스턴스보다 먼저->아직 만들어지지 않은 인스턴스에 접근하려는 격) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 class C1 { static int static_variable = 1; int instance_variable = 2; static void static_static() { System.out.println(static_v..