객체지향 16

8주차 - 인터페이스

목표 자바의 인터페이스에 대해 학습하세요. 인터페이스 정의하는 방법 public interface Service { //final static 변수 //default 메소드 //public static 메소드 public abstract void show(); } 인터페이스는 상수(final static), 추상 메소드, default메소드, public static메소드 이 네 가지만 가지고 있을 수 있다. 자바9부터는 private메소드도 선언할 수 있게 되었다. 인터페이스에 선언된 모든 변수는 상수, default, static, private이 붙지 않은 메소드는 추상 메소드다. 따라서 final static이나 public abstract키워드는 생략 가능하다. 컴파일러가 자동으로 붙여준다. 인..

Java 2021.01.08

내부 클래스inner class

📚 자바의 정석을 정리한 내용입니다. 내부클래스의 종류 내부 클래스는 단순히 클래스 내에 선언된 클래스다. 내부 클래스의 장점 1.내부 클래스에서 외브 클래스 멤버에 쉽게 접근 가능 2.코드 복잡성을 줄인다(캡슐화) 위 다이어그램에서 보다시피 내부 클래스는 클래스의 멤버처럼 다룬다. 다른 점은 익명 클래스Anonymous class가 있다. 내부클래스의 제어자, 접근성 자바의 정석 예제에 간단히 주석을 달았습니다. class Outer { class InstanceInner { int iv = 100; } static class StaticInner { int iv = 200; static int cv = 300; } void myMethod() { class LocalInner { int iv = 40..

Java 2020.09.09

추상클래스 & 인터페이스

이미지 출처 : https://learn-tech-tips.blogspot.com/2016/07/object-oriented-programming-abstract-class-vs-interface.html 추상 클래스abstract class 추상 클래스란? 미완성 클래스 즉, 완성되지 않은 abstract 메서드를 포함하고 있는 클래스라는 뜻이다. 추상 메서드abstract method 메서드는 선언부와 구현부로 나눈다. 선언부만 있고 구현부는 작성하지 않은 메서드를 추상 메서드라고 부른다. 추상 클래스를 상속받는 자손 클래스는 부모 클래스가 가진 모든 추상 메서드를 구현해야만 한다. 추상 클래스는 해당 클래스를 상속 받을 자손들이 사용하는 공통 부분을 뽑아내서 정의한다. 추상 클래스를 사용하는 이유는..

Java 2020.09.09

다형성Polymorphism

📚 자바의 정석을 정리한 내용입니다. 다형성? 운전하는 법은 한 번만 배우면 어떤 자동차든 운전할 수 있다. 자동차 브랜드나 내부 구현에 따라 달라지지 않는다. 동일한 인터페이스를 가지고 있기 때문이다. 이게 다형성이다. OOP에서 다형성이란 여러가지 형태를 가질 수 있는 능력. 말하자면 조상클래스 타입의 참조변수로 자손 클래스의 인스턴스를 참조할 수 있는 것이다. class Tv { boolean power; int channel; void power{ power = !power;} void channelUp() { ++channel;} void channelDown() { --channel;} } class CaptionTv extends Tv { String text; void caption() {..

Java 2020.09.06

상속Inheritance

📚 자바의 정석을 정리한 내용입니다. 상속Inheritance 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 코드를 공통적으로 관리할 수 있기 때문에 유지보수 하기 쉽다. class Child extends Parent { //... } extends만으로 간단하게 상속 받을 수 있다. 상속해주는 클래스Parent를 조상 클래스, 상속을 받는 클래스Child를 자손 클래스라고 한다. 이 두 관계를 상속관계라고 부른다. 출처 : https://www.javatpoint.com/inheritance-in-java 조상클래스는 자손 클래스가 변경 되어도 영향을 받지 않지만, 조상클래스가 변경되면 자손 클래스는 영향을 받는다. 자손 클래스는 조상 클래스의 모든 멤버를 상속 받는다. 따라서 항상 조..

Java 2020.09.06

객체지향1

📚 자바의 정석을 정리한 내용입니다. 객체지향 코드 재사용 유지보수 용이 신뢰성 높은 프로그래밍 클래스와 객체 클래스란 객체를 정의해놓은 일종의 설계도다. 도대체 클래스를 왜 만드는데? 클래스는 일종의 부품이 아닐까? 이를테면 거대한 우주선을 만든다고 하자. 수만가지의 부품이 필요하다. 그렇다고 우리가 그 많은 부품들 직접 만들어서 쓰지 않는다. 이미 누군가 만들어놓은 부품을 그대로 가져와서 쓰는 것이 (합리적이랄 것도 없이)당연한 선택이다. 물론 없는 부품은 직접 만들 수도 있다. 사용자 정의 타입처럼. 아무튼. 클래스로 객체를 만드는 과정을 클래스의 인스턴스화라고 한다. 만들어진 클래스를 우리는 객체(=인스턴스)라고 부른다. 객체의 구성요소 속성property과 기능function이 있다. prope..

Java 2020.09.06