본문 바로가기

728x90
반응형

BackEnd

[java] 이것이 자바다 ch10 라이브러리와 모듈 1. 라이브러리 ▷ 프로그램 개발시 활용할 수 있는 클래스와 인터페이스들을 모아놓은 것입니다. ▷ 일반적으로 JAR 압축 파일(~.jar) 형태입니다. 클래스와 인터페이스의 바이트코드 파일(~.class)들이 압축되어 있습니다. ▷ 라이브러리 JAR 파일을 이용하려면 ClassPath(클래스를 찾기 위한 경로)에 추가 ▷ 콘솔(명령 프롬프트 또는 터미널)에서 프로그램을 실행할 경우 : java 명령어를 실행할 때 -classpath로 제공합니다. 또는 CLASSPATH 환경 변수에 경로를 추가합니다. ▷ 이클립스 프로젝트에서 실행할 경우: 프로젝트의 Bulid Path에 추가합니다. ◎ 라이브러리 생성 목적 → JAR 파일을 만들어서 자신의 코드(패키지, 클래스)를 저장하면 다음 번에 만들 필요 없이 가.. 더보기
[java] 이것이 자바다 ch09 중첩 선언 2 및 익명 객체 1. 뱌깥 멤버의 접근 ◎ 바깥 클래스의 멤버 접근 제한 ▷ 정적 멤버 클래스 내부에서는 바깥 클래스의 필드와 메소드를 사용할 때 제한이 따릅니다. ◎ 바깥 클래스의 사용 가능한 멤버 ▷ 인스턴스 멤버 클래스 : 바깥 클래스의 모든 필드와 메소드 ▷ 정적 멤버 클래스 : 바깥 클래스의 정적 필드와 정적 메소드 ▷ 정적 멤버 클래스는 바깥 객체가 없어도 사용 가능해야 하므로 바깥 클래스의 인스턴스 필드와 인스턴스 메소드는 사용하지 못합니다. ◎ 바깥 클래스 접근 제한 예제 public class A { // A의 인스턴스 필드와 메소드 int field1; void method1() { } // A의 정적 필드와 메소드 static int field2; static void method2() { } // .. 더보기
[java] 이것이 자바다 ch09 중첩 선언 1. 중첩 클래스 ▷ 클래스 내부에 선언한 클래스 ▷ 클래스의 멤버를 쉽게 사용할 수 있고 외부에는 중첩 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있습니다. ▷ 멤버 클래스 : 클래스 멤버로서 선언되는 중첩 클래스 ▷ 로컬 클래스 : 메소드 내부에서 선언되는 중첩 클래스 NO 선언 위치에 따른 분류 선언 위치 객체 생성 조건 1 멤버 클래스 인스턴스 멤버 클래스 class A { class B { ... } } A 객체를 생성해야만 B 객체를 생성할 수 있습니다. 2 정적 멤버 클래스 class A { static class B { ... } } A 객체를 생성하지 않아도 B 객체를 생성할 수 있습니다. 3 로컬 클래스 class A { void method() { static class B {.. 더보기
[java] 인터페이스2 1. 다중 인터페이스 ▷ 구현 객체는 여러 개의 인터페이스를 통해 구현 객체를 사용할 수 있습니다. ▷ 구현 클래스는 인터페이스 A와 인터페이스 B를 implements 뒤에 쉼표로 구분해서 작성합니다. 이러면, 모든 인터페이스가 가진 추상 메소드를 재정의합니다. ▷ 여러개의 객체가 각각의 인터페이스를 통해 구현 객체를 불러오는 것입니다. 1. RemoteControl 인터페이스 public interface RemoteControl { void turnOn(); void turnOff(); }​ 2. Searchable 인터페이스 public interface Searchable { void search(String url); }​ 3. SmartTelevision 클래스 public class Sma.. 더보기
[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.. 더보기

728x90
반응형