☕ 자바 JAVA/☕ 클래스와 함수 Class & Method 28

[JAVA]Default method & Static method

interface에 추가 가능한 method들. (JDK1.8부터)interface에 새로운 method를 추가하기 어려움.→이 문제를 해결하기 위해 나온 게 default method.default method는 instance method로. (instance 원칙에서 예외된다)default method가 기존 method와 충돌 할 경우interface를 구현한 class에서 default method를 오버라이딩한다.조상 class의 method가 우선 상속되고, default method는 무시된다.→ 이런 방법이 있지만 그냥 직접 오버라이딩하면 해결된다. 끝...

[JAVA]interface 선언, 상속, 구현

interface란?추상method 집합구현된 것이 없는 설계도.→ 선언부 { }가 없다.모든 멤버가 public.public과 abstract를 생략해도 자동으로 public과 absract로 method가 선언된다.→ public과 abstract 생략가능. * 인터페이스와 추상클래스의 차이?추상클래스는 일반 클래스에 추상멤버가 추가된 개념.인터페이스는 추상메서드만으로 구성되어 있다.따라서 인터페이스는 iv를 가질 수 없다.Object가 최고 조상이 아니다.→ interface의 조상은 interface만 가능.다중 상속이 가능.→ 추상method는 충돌해도 문제가 없기 때문에. interface 구현이란?interface에 정의된 추상 method를 완성하는 것. interface 중 일부만 구현하..

[JAVA]추상 클래스 abstract class

미완성 설계도. 미완성 method(=추상 method)를 갖고 있는 class. class명 앞에 abstract가 붙는다(class 만들 때 abstract class로 생성). 추상method 앞에도 abstract가 붙는다. 구현부 { } 가 없다. 구현부가 없어 미완성이자 추상이라고 하는 것. abstract class는 instance 생성불가 상속extebds를 통해 추상 method를 완성해야 상속된 class로 instance 생성가능 이 때는 추상이 아니기 때문에 abstract가 붙지 않는다. 추상 method가 상속되면서 override된다. 구현부{ }는 AudioPlayer에서 만들면 됨. Player가 상속된 AudioPlayer를 다른 class에서 instance로 만들어 ..

[JAVA]다형성의 장점2:여러 종류의 객체를 배열로 다루기

조상type의 배열에 자손들의 객체를 담을 수 있다 public class ManyKindOfObjectArray { public static void main(String[] args) { Buyer2 b = new Buyer2(); b.buy(new Tv2()); b.buy(new Computer2()); b.buy(new Audio2()); b.summary(); System.out.println("현재 남은 돈은 " + b.money + "만원입니다."); System.out.println("현재 보너스점수는 " + b.point + "점입니다."); } } class Product2 { int price; int point; Product2(int price) { this.price = pric..

[JAVA]다형성의 장점1:매개변수의 다형성

참조형 매개변수는 method 호출 시, 자신과 같은 type 또는 자손type의 instance를 넘겨줄 수 있다. 걍 아래 예제 보시는 게 이해가 빠름 이거 보고 정리하는 거라고 전에 적긴 했는데 https://youtu.be/U-VGYYH-obM?si=1EFn4V2pSL45XxRi 간단한 코드지만 정말 깔끔하고 좋네요^^ public class ParameterPolymorphism { public static void main(String[] args) { Buyer b = new Buyer(); b.buy(new Tv()); b.buy(new Computer()); // buy(Product p) System.out.println("현재 남은 돈은 " + b.money + "만원입니다."); S..

[JAVA]instanceof 연산자:형변환 전 확인용도

참조변수의 형변환 가능여부 확인에 사용 static void doWork(Car4 c) { // FireEngine2은 Ambulance2과 형변환이 안되므로 확인 // c가 FireEngine2일 경우 실행하는 if문 if (c instanceof FireEngine2) { // 형변환이 가능한 지 확인 FireEngine2 fe = (FireEngine2) c; fe.water(); } } 따라서 형변환 전에 반드시 instanceof로 확인필요 System.out.println(fe instanceof Object); // true System.out.println(fe instanceof Car4); // true System.out.println(fe instanceof FireEngine2);..

[JAVA]참조변수의 형변환

사용할 수 있는 멤버의 갯수를 조절하는 것 조상, 자손 관계의 참조변수는 서로 형변환 가능 실제 instance가 무엇인 지가 중요 참조type 변수명 = new insatnce(); 이런 형태인데.. Car3 car = null; FireEngine f3 = (FireEngine) car; // 조상 -> 자손으로 형변환 Car3 car2 = f3; // 자손 -> 조상으로 형변환 car2.drive(); // NullPointerException 실제 값인 instance가 null인 걸 가지고 아무리 형변환해봤자 호출 시 error가 생긴다. Car3 car3 = new Car3(); FireEngine fe = (FireEngine) car3; // java.lang.ClassCastExcepti..

[JAVA]다형성 polymorphism

조상 type 참조 변수로 자손 type 객체를 다루는 것 또는 여러 가지 형태를 가질 수 있는 능력 class TvBotton { boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDow() { --channel; } } class SmartTv extends TvBotton { String text; // caption void caption() { } } 이러한 코드가 있을 때 조상 type으로 자손 instance(new)를 생성가능 자손 type으로 조상 instance 생성 불가