2024/05/28 4

[인프런] 객체 지향

객체 지향 특징객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 이용된다.역할과 구현을 분리하면,클라이언트는 대상의 역할(인터페이스)만 알면 된다.클라이언트는 구현 대상의 내부 구조를 몰라도 된다.클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다.클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다. 자바 언어의 다형성을 활용역할 = 인터페이스구현 = 인터페이스를 구현한 클래스, 구현 객체객체를 설계할 때 역할과 구현을 명확히 분리객체 설계시 역할을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기수 많은 객체 클라이언트와 객체 서버는 서로 협력 관계를 가진다.( 클라이언트 : 요청, 서버 : 응답 )자바 언어의 다형성오버라..

Java 2024.05.28

[인프런] 인터페이스

인터페이스자바는 앞서 공부한 순수 추상 클래스를 더 편리하게 사용할 수 있는 인터페이스라는 기능을 제공한다.인터페이스는 class가 아니라 interface라는 키워드를 사용하면 된다.인터페이스의 메서드는 모두 public, abstract이다.메서드에 public abstract를 생략할 수 있으며, 생략이 권장된다.인터페이스는 다중 구현( 다중 상속 )을 지원한다.인터페이스와 멤버 변수인터페이스에서 멤버 변수는 public, static, final이 모두 포함되어 있다고 간주된다.클래스, 추상 클래스, 인터페이스는 프로그램 코드, 메모리 구조상 모두 똑같다. 모두 자바에서는 .class로 다루어지고 인터페이스를 작성할 때도 .java에 인터페이스를 정의한다.인터페이스는 순수 추상 클래스와 비슷하다고..

Java 2024.05.28

[인프런] 추상 클래스

추상 클래스추상 클래스는 이름 그대로 추상적인 개념을 제공하는 클래스이다. 따라서 실체인 인스턴스가 존재하지 않는다.대신 상속으로 사용되고, 부모 클래스 역할을 담당한다.추상 클래스는 클래스를 선언할 때 앞에 추상이라는 의미의 abstract  키워드를 붙여주면 된다.추상 클래스는 기존 클래스와 완전히 같으나, new를 사용해 직접 인스턴스를 생성하지 못하는 제약이 추가된 것이다. 추상 메서드부모 클래스를 상속 받는 자식 클래스가 반드시 오버라이딩 해야 하는 메서드를 부모 클래스에 정의할 수 있다.이를 추상메서드라고 한다. 추상메서드는 추상적인 개념을 제공하는 메서드로 실체가 존재하지 않고, 메서드 바디가 없다.추상 메서드는 선안할 때 메서드 앞에 abstract 키워드를 붙인다.추상 메서드가 하나라도 ..

Java 2024.05.28

[인프런] 다형성과 메서드 오버라이딩

오버라이딩 된 메서드가 항상 우선권을 가진다. 기존 기능을 덮어 새로운 기능을 재정의 한다는 뜻의 오버라이딩이다.// 부모 변수가 자식 인스턴스 참조Parent poly = new Child();System.out.println("Parent -> Child");System.out.println("value = " + poly.value); // 변수는 오버라이딩Xpoly.method(); // 메서드 오버라이딩poly변수는 Parent 타입이므로 poly.value, poly.method( )를 호출하면 Parent타입에서 기능을 찾아서 실행한다.따라서 poly.value는 Parent타입에 있는 value값을 읽는다.poly.method( )는 Parent 타입에 있는 method(  )를 실행하려고..

Java 2024.05.28