전체 글 228

[JAVA]다형성 polymorphism

조상 type 참조 변수로 자손 type 객체를 다루는 것 또는 여러 가지 형태를 가질 수 있는 능력 class TvBotton { boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDow() { --channel; } } class SmartTv extends TvBotton { String text; // caption void caption() { } } 이러한 코드가 있을 때 조상 type으로 자손 instance(new)를 생성가능 자손 type으로 조상 instance 생성 불가

[JAVA]접근 제어자 access modifier

private 같은 class 내에서만 접근 가능. (default) 같은 package 내에서만 접근 가능. 접근 제어자를 안 붙였을 때 자동으로 default가 됨. ptotected 같은 package 내, 그리고 (다른 package여도) 자손 class에서 접근 가능. public 제한X. class에는 puablic 또는 (default) 만 붙일 수 있다. 또 file명과 동일한 class에만 public 접근 제어자를 붙일 수 있다. 접근 제어자를 사용하는 이유 외부로부터 데이터를 보호하기 위해서 외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해서 그래서 접근제어자 범위를 좁힐 수 있다면 되도록 좁히는 게 좋다. 참고로 private과 public 을 주로 많이 씀..

[JAVA]제어자 modifier-접근 제어자 & 그 외

제어자 modifier : class와 class member(변수, method)에 부가적인 의미 부여 (마치 영어 형용사처럼) 종류는 두가지가 있는데 접근 제어자 public, protected, (default), private. 중 하나만 사용가능. 그 외 static, final, abstract, native, transient, synchronized, volatile, strictfp. 중복가능. 아래로는 중복 가능한 그외 static, final, abstract 에 대한 설명 static : class의, 공통적인 member변수 = cv:class vairable - 모든 instance에 공통적으로 사용되는 class변수가 된다. - class 변수는 instance를 생성하지 않고..

[JAVA]import문

class를 사용할 때 package이름을 생략할 수 있다 compiler에게 class가 속한 package를 알려준다. import문 선언 import 패키지명.클래스명; 또느 import 패키지명.*; *로 써도 compile 시에 처리되므로 프로그램 성능에 영향 없다. java.util.Date 에서 util은 package이므로 import java.*와 같이는 쓸 수 없다. 같은 package에 속한 class만 *로 불러 올수 있단 뜻. 작성순서 package 선언 import문 class 선언 static import문 : static 멤버를 사용할 때 class 이름을 생략할 수 있게 해준다. 원래는 Math.random(); 이렇게 써야하는데 위에 import static java.la..

[JAVA]package & class path. cmd로 java file실행과 환경변수 설정.

패키지 package 서로 관련된 class의 묶음. class는 *.class, package는 folder. 하위 package는 하위 foler..(package는 folder라느 말) class의 실제 이름(full name)은 package를 포함.(java.lang.String). rt.jar(runtime)는 class들을 압축한 파일(JDK설치경로 \jre\lib에 위치).. Jar9부터 rt.jar파일은 module로 잘게 쪼게져서 없다. * jar.exe는 zip과 똑같아서 zip파일 압축을 푸는 프로그램으로 풀 수 있다. package 선언 package study001; public class Package { public static void main(String[] args) {..

[JAVA]참조변수 super & 조상 생성자 super()

참조변수 super public class Super { public static void main(String[] args) { ChildClass child = new ChildClass(); child.method(); } } class ParentClass {int x = 10; /* super.x */} class ChildClass extends ParentClass { int x = 20; // this.x void method() { System.out.println("x=" + x); System.out.println("this.x" + this.x); System.out.println("super.x=" + super.x); } } 객체 자신을 가리키는 참조변수. (this와 비슷) 조..

[JAVA]오버라이딩 Overrinding

override : 덮어쓰다 Overriding : 조상의 method를 자신에 맞게 변경하는 것 class MyPoint { int x; int y; public String toString() { return "x :" + x + ", y :" + y; } } class MyPoint3D extends MyPoint { int z; public String toString() { // overriding return "x :" + x + ", y :" + y + ", z :" + z; } } 부모 class인 MyPoint에 있는 toString() 함수를 자식 class인 MyPoint3D에서 다르게 변경해서 사용할 수 있다. Overriding 조건 선언부는 변경불가. 구현부{ }를 변경해서 사용..