본문 바로가기

728x90

BackEnd/Java

[java] 인터페이스 1. 인터페이스 ▷ 두 객체를 연결하는 역할입니다. ▷ 다형성 구현에 주된 기술입니다. ◎ 인터페이스 선언 ▷ 인터페이스 선언은 class 키워드 대신 interface 키워드를 사용합니다. ▷ 접근 제한자로는 클래스와 마찬가지로 같은 패키지 내에서만 사용 가능한 default, 패키지와 상관없이 사용하는 public을 붙일 수 있습니다. ◎ 구현 클래스 선언 ▷ 인터페이스에 정의된 추상 메소드에 대한 실행 내용이 구현됩니다. ▷ implements 키워드는 해당 클래스가 인터페이스를 통해 사용할 수 있다는 표시이며, 인터페이스의 추상 메소드를 재정의한 메소드가 있다는 뜻입니다. ◎ 변수 선언과 구현 객체 타입 ▷ 인터페이스는 참조 타입에 속하므로 인터페이스 변수에는 객체를 참조하고 있지 않다는 뜻으로 .. 더보기
[java] 추상 클래스 ◎ 추상 클래스 : 객체를 생성할 수 있는 실체 클래스들의 공통적인 필드나 메소드를 추출해서 선언한 클래스 추상 클래스는 실체 클래스의 부모 역할. 공통적인 필드나 메소드를 물려받을 수 있습니다. 1. Phone 부모 클래스 public class Phone { String owner; Phone(String owner){ this.owner = owner; } void turnOn() { System.out.println("폰 전원을 켭니다."); } void turnOff() { System.out.println("폰 전원을 끕니다."); } }​ 2. SmartPhone 자식 클래스 public class SmartPhone extends Phone { SmartPhone(String owner){.. 더보기
[java] 이것이 자바다 ch07 상속3 1. 타입 변환 ◎ 자동 타입 변환 ▷ 자동적으로 타입 변환이 일어나는 것입니다. ▷ 자식은 부모의 특징과 기능을 상속받기 때문에 부모와 동일하게 취급합니다. class A{ } class B extends A{ } class C extends A{ } class D extends B{ } class E extends C{ } public class PromotionExample { public static void main(String[] args) { B b = new B(); C c = new C(); D d = new D(); E e = new E(); A a1 = b; A a2 = c; A a3 = d; A a4 = e; B b1 = d; C c1 = e; //B b3 = e; // 컴파일 에러.. 더보기
[java] 이것이 자바다 ch07 상속2 1. 오버라이딩 ▷ super ← 부모 클래스 ▷ super() : 부모 클래스의 생성자를 실행합니다. ▷ super(인자1, 인자2) ▷ super.메소드() : 부모 클래스의 메소드를 실행합니다. ◎ 부모 메소드 호출 ▷ 자식 메소드 내에서 super 키워드와 도트(.) 연산자를 사용하면 숨겨진 부모 메소드를 호출합니다. ▷ 부모 메소드를 재사용함으로써 자식 메소드의 중복 작업 내용을 없애는 효과가 있습니다. ◎ Airplane 부모 클래스 public class Airplane { public void land() { System.out.println("착륙합니다."); } public void fly() { System.out.println("일반 비행합니다."); } public void tak.. 더보기
[java] 이것이 자바다 ch07 상속 1. 상속 ▷ 부모 클래스의 필드와 메소드를 자식 클래스에게 물려줄 수 있습니다. ◎ 상속의 이점 ▷ 이미 개발된 클래스를 재사용하므로 중복 코드를 줄입니다. ▷ 클래스 수정을 최소화합니다. 2. 클래스 상속 ▷ 자식 클래스를 선언할 때 어떤 부모로부터 상속받을 것인지를 결정하고, 부모 클래스를 다음과 같이 extends 뒤에 기술합니다. ▷ 다중 상속 허용하지 않습니다. extends 뒤에 하나의 부모 클래스만 상속합니다. ▶ 자바 외의 다른 언어에서는 다중 상속이 가능합니다. ▷ 클래스 앞에 final이 붙은 경우에는 상속이 불가능합니다.( ex) final calss Parent{ } ) ▷ control + T를 누르면 상속이 나타납니다. ◎ 부모 클래스 Phone // 부모 클래스 Phone p.. 더보기
[java] class 이전에 정리를 한 번 했었지만 한 번 더 정리해보겠습니다. 계속 공부를 하다보니 클래스 내부의 함수들과 변수들을 지칭하는 말들이 구분이 잘 되지 않네요,, 필드나 메소드, 인스턴스 등을 잘 구분해야합니다! https://bobo12.tistory.com/16 [java] 자바의 클래스(class)란? 1. 객체지향 언어 현실에 존재하는 사물과 개념들을 소프트웨어적으로 구현하고, 그 객체들이 상호작용하여 데이터를 처리하는 방식입니다. 특징 (1) 코드의 재사용성 : 새로운 코드 작성시 기존 bobo12.tistory.com ◎ Class 사용 예제 class Car1 { // 필드 (속성, 객체 변수) boolean powerOn; // false String color; // null int wheel;.. 더보기
[java] 이것이 자바다 ch06 singleton(싱글톤) 패턴 ◎ 싱글톤 패턴 ▷ 생성자를 private 접근 제한해서 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아서 외부에서 마음대로 객체를 생성하지 못하게 합니다. ▷ 대신 싱글톤 패턴이 제공하는 정적 메소드를 통해 간접적으로 객체를 얻을 수 있습니다. public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() { } static Singleton getInstance() { return singleton; } } public class SingletonExample { public static void main(String[] args) { //Singleton obj1 = new S.. 더보기
[java] 이것이 자바다 ch06 패키지 1. 자바의 패키지 ▷ 클래스의 일부분이며, 클래스를 식별하는 용도입니다. ▷ 패키지는 주로 개발 회사의 도메인 이름의 역순으로 만듭니다. ▷ 상위 패키지와 하위 패키지를 도트(.)로 구분합니다. ▷ 패키지에 속한 바이트코드 파일(~.class)은 따로 떼어내서 다른 디렉토리로 이동할 수 없습니다. ◎ 패키지 선언 ▷ 패키지 선언은 package 키워드와 함께 패키지 이름을 기술한 것입니다. 항상 소스 파일 최상단에 위치합니다. ▷ 패키지 이름은 모두 소문자로 작성합니다. ▷ 패키지 이름이 서로 중복되지 않도록 회사 도메인 이름의 역순으로 작성하고, 마지막에는 프로젝트 이름을 붙여줍니다. ◎ import문 ▷ 다른 패키지에 있는 클래스를 사용하려면 import문을 이용해서 어떤 패키지의 클래스를 사용하는.. 더보기

728x90