본문 바로가기

Language43

상속(extends) 상속(extends) 💡 상속(extends) : 기존에 존재하는 유사한 클래스로부터 상태와 행위를 물려받고 자신이 필요한 기능을 추가하는 기법. 타입이 일치할 때, 추상화를 해주고 상태와 행위를 물려받을 수 있게 된다. import 는 상태, 행위를 가져와서 사용하는 개념 타입이 일치해야 한다. = 추상화 된 존재 자동차야 너 엔진이니 ? 아니. : 상속 불가능 치즈 햄버거야 너 햄버거니 ? 응. : 상속 가능 치킨 햄버거야 너 햄버거니 ? 응. : 상속 가능 💡 상속 이해하기 한국인, 아시아인, 지구인의 상속 관계는 "한국인 2023. 4. 4.
상태는 행위를 통해 변경한다. 클래스, 오브젝트, 인스턴스 클래스 : .java 파일. 신이 가지고 있는 설계도 오브젝트 : new를 할 수 있는 것 인스턴스 : 클래스를 new 해서 heap 공간에 뜬 것들 클래스의 상태와 행위 객체 지향 프로그래밍 1. 클래스의 필드는 메서드에 의해서 변한다. - 실수할 가능성을 줄이기 위해 접근 제어자를 이용하면 좋겠다. 2023. 4. 4.
This This 💡 This 란? : 자기 자신의 heap 공간을 가리킨다. 변수의 이름이 같은 경우, 컴퓨터가 헷갈릴 수 있다. 이 때, heap 공간에 있는 변수의 이름 앞에 this를 붙여 컴퓨터가 구분할 수 있게 해준다. 생성자 내부에서는 p1을 알 수 없기 때문에 p1 이라는 heap 주소를 사용할 수 없다. this 를 이용하도록 한다 ! 이해하기 2023. 4. 4.
클래스(Class), 생성자(Constructor) 클래스(Class) 💡 클래스(Class) 란? : 설계도이다. java 파일명과 클래스 명은 동일해야 한다. 클래스는 값을 초기화하지 않는다. 값을 초기화하지 않는 이유는 new 할 때마다 다른 상태를 가진 객체를 만들기 위해서이다. Cat 클래스를 만들고 상태를 초기화한 뒤 main 메서드에서 Cat을 여러번 new 하면, 같은 상태의 Cat 만 호출된다. new 할 때마다 다양성을 가지지 못하는데, 다양성을 가지기 위해서 클래스는 값을 초기화하지 않고 생성자를 이용하게 된다. 생성자(Constructor) 📌 생성자(Constructor) 클래스의 상태를 초기화 할 수 있다. 작성된 생성자가 없다면, 디폴트 생성자가 생략되어 있다. (.java 를 .class 로 컴파일할때 자바가 자동으로 생성자 .. 2023. 4. 4.
라이브러리 만들기 라이브러리 📌 라이브러리 란? : 필요한 기능들이 모여있는 코드의 묶음 라이브러리 만들기 💡 다른 패키지에 있는 클래스 내부의 메서드를 이용해보려 한다. practice 패키지에서 recipe 패키지 를 이용해보자. 1. recipe 패키지 우클릭 - Export - JAR File 2. JAR 파일이 잘 생성된 것을 확인한다 :) 라이브러리 이용하기 1. 이용할 패키지 우클릭 - Build Path - Configure Build Path 2. 패키지 내부에 있으면 Add JARs, 없으면 Add External JARs 지금은 패키지 외부에 있으니 Add External JARs 3. 클래스에서 해당 라이브러리를 import 해주면 이용할 수 있다 :) 주의) jar 파일은 .class 이므로 해당 .. 2023. 4. 4.
패키지, import, 접근제어자, main 메서드의 특징 패키지(package) 💡 패키지 란? : .java 파일을 가지고 있는 폴더 import 동일한 패키지에 있는 클래스는 그냥 사용할 수 있지만, 다른 패키지에 있는 클래스를 사용하고자 할 때 import 해야 한다. a 패키지의 Cal 이 가진 메서드를 b 패키지의 App이 사용하려고 한다. App이 Cal의 클래스를 사용하려면, Cal을 import 해야 한다. Cal은 static이 아니므로 new 해서 heap에 띄운 다음 사용한다. 그런데 Cal이 가진 메서드가 바로 소환되지 않는다. Cal 내부의 minus 메서드가 디폴트 접근제어자로 설정되어 있기 때문이다. 접근제어자 📌 접근 제어자의 종류 디폴트 접근 제어자 : 아무 것도 적지 않은 경우. 동일한 패키지에서만 접근 가능 public 접근 .. 2023. 4. 4.