☕ 자바 JAVA 68

[JAVA]접근 제어자/제한자 access modifier

접근제어자/접근제한자modifierprivate현재 class 내 에서만 접근 가능.(default)현재 package 내에서만 접근 가능.접근 제어자를 안 붙였을 때 자동으로 default가 됨.(특이점이 있는데 밑에 설명 해두겠습니다)ptotected같은 package 내.그리고 (다른 package여도) 자손 class 에서 접근 가능.public제한 X.쓰이는 곳전역변수 맨 앞.메소드 선언 맨 앞. 메소드 안 지역 변수에서는 사용 못 합니다.public class는 해당 파일명과 일치하는 1개만 존재class에는public과 (defulat)만default약간 혼돈 스러울 수 있지만지금까지 위에서 설명한 default는 범위를 얘기합니다.접근제어자를 적지 않으면 default 또는 pakage p..

[JAVA]예약어 static, final, abstract

static: class의, 공통적인class StaticTest {    static int width = 200;         // class 변수(static 변수)        static {                        // class 초기화 block        // static변수의 복잡한 초기화 수행    }    static int max(int a, int b) {  // class method(static method)        return a > b ? a : b;    }}CVClass Vairable모든 instance에 공통적으로 사용되는 class변수가 된다.class 변수는 instance를 생성하지 않고도 사용 가능하다.memory에 load될 때(프로..

[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 조건 선언부는 변경불가. 구현부{ }를 변경해서 사용..

[JAVA]포함 composite

클래스의 관계는 크게 상속과 포함으로 나뉜다 상속관계 is-a : '~은 ~이다.' extends *여러가지 제약이 있으므로 꼭 필요할 때만 사용한다. 포함관계 has-a : '~은 ~을 가지고 있다.' 상속관계 extends를 호출할 때 public class Inheritance { public static void main(String[] args) { MyCircle myC = new MyCircle(); myC.x = 1; myC.y = 2; myC.r = 3; System.out.println("myC.x=" + myC.x); System.out.println("myC.y=" + myC.y); System.out.println("myC.r=" + myC.r); } } class Point { ..

[JAVA]상속 Inheritance

상속 Inheritance: 두 클래스를 부모와 자식으로 관계를 맺어주는 것.기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용).2D 좌표를 표기하는 Point2D라는 이름의 class와 3D 좌표를 표기하는 Point3D라는 class가 있을 경우에Point2D를 상속 받은 Point3D 클래스에서 x,y,z사용할 수 있습니다.class명에 extend가 붙기 때문에.. 응용

[JAVA]변수의 초기화

지역변수lv는 사용 전 꼭 수동초기화 해야한다 int x; // 인스턴스 변수 iv int y = x; // 재사용이 빈번하여 자동으로 0으로 초기화된다. void method1() { int i; // 지역변수lv // int j = i; // ERROR 지역변수를 초기화하지 않아 사용할 시 에러. } 지역변수 lv : local valiable는 초기화 하지 않을 시 에러 발생. 따라서 변수 선언 시 값을 대입하는 초기화가 필요합니다. 인스턴스 변수 iv : instance valiable 은 사용이 빈번하여 클래스 생성시 자동으로 0으로 초기화 된다. 자동초기화시 참조변수는 null, boolean은 false, 그 외의 값은 0 으로 초기화된다고 보면 된다. 크게 명시적초기화(간단초기화) 와 bl..