[JAVA] 객체지향 - super
·
Back-End/Java
[작성일: 2023. 01. 26] 목차 super객체 자신을 가리키는 참조변수.인스턴스 메서드(생성자) 내에서만 존재.lv와 iv 구별에 사용하는 this와 거의 비슷함.static 메서드 내에서 사용 불가조상의 멤버를 자신의 멤버와 구별할 때 사용   연습예제 1class Ex7_2 { public static void main(String args[]) { Child c = new Child(); // 객체 생성 c.method(); }}class Parent { int x = 10l /* super.x */ }class Child extends Parent { int x = 20; //this.x void method() { System.out.println("x="..
[JAVA] 객체지향 - 생성자
·
Back-End/Java
[작성일: 2023. 01. 25]  생성자(Constructor)인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드객체(iv묶음) 초기화 메서드{} 괄호 안에 작업할 문장을 넣으면 됨.번거로운 과정을 직관적으로, 편리하게 초기화할 수 있음.* 기존 초기화Time t = new Time();t.hour = 12;t.minute = 34;t.second = 56;* 생성자 호출(사용) Time t = new Time(12, 34, 56); // 생성자를 만들어줘야 사용할 수 있음.생성자의 이름과 클래스 이름이 같아야 함.생성자인 경우는 반환값이 없기 때문에 리턴값이 없음. (void 안 붙임)모든 클래스는 반드시 1개 이상의 생성자를 가져야 함.Card c = new Card(); ➡️ 생성자 호출(..
[JAVA] 변수 초기화
·
Back-End/Java
[작성일: 2023. 01. 26] 목차 변수의 초기화지역변수(lv)는 수동초기화 해야 함(사용 전 꼭!!!!)메서드는 호출 스택에 계속 쌓였다가 지워졌다가 하기 때문에 생명주기가 굉장히 짧음. 매번 0으로 초기화하면 성능이 떨어지기 때문에 새로운 값으로 덮어써야 함. (수동 초기화)멤버변수(iv, cv)는 자동 초기화됨.타입마다 다르지만 근본적으로는 0으로 초기화됨.class InitTest { int x; // 인스턴스 변수, 자동 초기화 int y = x; // 인스턴스 변수(iv) void method1() { int i; // 지역변수(lv) int j = i; // 에러. 지역변수를 초기화하지 않음.     멤버변수(iv, cv)의 초기화클래스 변수..
[JAVA] 객체지향 - this
·
Back-End/Java
[작성일: 2023. 01. 25]  생성자 this()같은 클래스 생성자에서 다른 생성자를 호출할 때 사용클래스 이름 대신 this() 사용다른 생성자 호출 시 첫 줄에서만 사용 가능첫 줄이 아닐 경우 에러.코드 중복을 제거하기 위해 생성자들끼리 서로 호출함.class Car2 { String color; String gearType; int door; Car2() { this("white", "auto", 4); } // Car2(String color, String gearType, int door)를 호출 Car(String color) { this(color, "auto", 4); } // Car2(String color, String gearType, ..