Java/Notion

· Java/Notion
내부 클래스에서 외부 클래스의 멤버들에 쉽게 접근 가능 및 코드의 복잡성 감소 클래스는 접근제어자가 default와 public만 가능하지만 내부 클래스는 모든 접근 제어자가 가능 class A { int i = 10; static int c = 15; class B { //객체 생성 없이 A 클래스의 멤버 접근 가능 void pri() { System.out.println(i); // 출력가능 System.out.println(c); // 출력가능 } } static class C { void static_pri() { System.out.println(i); // 출력불가능 System.out.println(c); // 출력가능 } } void methodA() { final int x= 5; // ..
· Java/Notion
인터페이스 //인터페이스의 선언 interface 인터페이스명 { //메소드는 public과 abstract는 자동으로 지정되기 때문에 생략 가능 //변수도 마찬가지로 항상 자동으로 public static final로 지정 //상수 //클래스 메소드 //추상 메소드 } //다중 상속 interface 인터페이스1 extends 인터페이스2, 인터페이스3 { } //인터페이스의 구현 class 클래스명 implements 인터페이스명 { // 클래스가 인터페이스를 구현했다는 의미 //인터페이스의 추상 메소드를 모두 구현하기 } //인터페이스를 이용한 다형성 class 클래스명 extends 부모클래스명 implements 인터페이스명 { } //부모 클래스나 인터페이스로 자식클래스의 객체를 참조할 수 있..
· Java/Notion
추상 클래스 추상(미완성) 메소드를 하나라도 갖고 있는 클래스 완성하기 전까지 인스턴스를 생성할 수 없음 다른 클래스 작성에 도움을 주기 위해 있는 클래스 일반적인 클래스와 동일하게 생성자가 있어야 함 // 추상 클래스 abstract class Player { abstract void play(); // 몸통이 없는 메소드 } Player p = new Player(); // 잘못된 코드. 추상 클래스의 인스턴스는 생성불가 // 상속을 통해 추상 메소드를 완성해야 인스턴스 생성이 가능 class AudioPlayer extends Player { void play() { 내용 } // 자손 메소드에서 몸통을 구현 } class RadioPlayer { void play() { 내용 } } // 인스턴스..
· Java/Notion
여러 가지 형태를 가질 수 있는 능력 조상 타입의 참조 변수로 자손 타입의 객체를 다루는 것 자손 타입의 참조 변수로 조상 타입의 객체를 다루는 것은 불가능 class Tv { boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; } } class SmartTv extends Tv { String text; void caption() { } } 조상타입 참조변수명 = new 자손타입(); // 다형성은 조상 타입 Tv의 참조 변수 t가 Tv t = new SmartTv(); // 자손 타입 SmartTv 객체를 다루는 것 //즉, 타입이..
· Java/Notion
클래스와 클래스의 멤버에게 부가적인 의미를 부여 하나의 대상에 여러 제어자를 같이 사용가능하지만 접근 제어자는 하나만 가능 접근 제어자 외부로부터 데이터를 보호하기 위해 사용 public 접근 제한이 없음. 어디서든 접근 가능 protected 같은 클래스 내에서, 같은 패키지 내에서, 다른 패키지의 자손 클래스에서 접근 가능 (default) 같은 클래스 내에서, 같은 패키지 내에서만 접근 가능 private 같은 클래스 내에서만 접근 가능 클래스에는 public과 default 접근 제어자만 사용 가능 클래스의 멤버들에는 모두 사용 가능 하나의 클래스에는 public 클래스는 하나만 있어야함 기타 static 클래스의, 공통적인 멤버변수 : 클래스 변수로 만듬. 인스턴스 생성 없이 사용가능. 클래스가..
· Java/Notion
import 클래스를 사용할 때 패키지 이름을 생략할 수 있게 컴파일러에게 클래스가 속한 패키지를 알려줌 컴파일 시에 처리되므로 프로그램의 성능에 영향이 없음 //import 사용 전 java.util.Date today = new java.util.Date(); //import 사용 후 import java.util.Date; Date today = new Date(); //주의사항 import java.util.* // 유틸 클래스의 모든 패키지 import java.* // 자바 패키지의 모든 클래스. 사용불가 static import static 멤버를 사용할 때 클래스 이름을 생략할 수 있게 해줌 코드를 간결하게 도와주지만 알아보기 힘들기 때문에 가급적이면 사용하지 않는게 좋음 //전 Syste..
· Java/Notion
서로 관련된 클래스의 묶음 package com.test.pack // 소스파일 최상단에 한 번만 선언 class 클래스1 { // 클래스 1, 클래스 2 모두 내용 } class 클래스2 { // com.test.pack 패키지 안에 속하게 됨 내용 } 같은 소스 파일의 클래스들은 모두 같은 패키지에 속함 패키지 선언이 없다면 이름없는(unnamed, default package) 패키지에 속함
· Java/Notion
super 객체 자신을 가리키는 참조변수로 조상의 멤버를 자신의 멤버와 구분할 때 사용 인스턴스 메소드 혹은 생성자 내에만 존재 this와 마찬가지로 static 메소드(클래스 메소드)에 사용 불가 this는 자손 클래스의 멤버 - super는 조상 클래스의 멤버 class 조상클래스 { int x = 10; //조상 클래스의 x를 가리키려면 super.x } class 자손클래스 extends 조상클래스 { int x = 20; // 자손 클래스의 x를 가리키려면 this.x } class 자손클래스2 extends 조상클래스 { // 조상 클래스의 멤버를 따로 자손클래스에서 사용하지 않은 경우 // this 와 super 둘다 조상 클래스의 멤버를 가리킴 } super() 조상의 생성자를 호출할 때 ..
da9dac
'Java/Notion' 카테고리의 글 목록 (5 Page)