본문 바로가기
수업

10월 10일 - 생성자, 패키지컴파일, import

by hojin880214 2018. 10. 10.

A.java

AA.java

AAA.java

BBB.java



public class A{

int i;

String str;

// 멤버변수, 소속변수,필드 초기화하지 않은 상태

A(){

}

//매개변수 없는 생성자


A(int i){

this.i = i;

System.out.println(" i : " + i);

}

// int i 가 매개변수인 생성자 매개변수1개



A(int i, String str){

this.i = i;

this.str = str;

System.out.println(" i : " + i);

System.out.println(" str : " + str);

}

// 매개변수가 int i, String str인 생성자 매개변수2개


/*

javap A.class 실행시

생성자를 코드에 쓰지 않으면 public A(); 생성

생성자를 코드에 쓰면 A(); 생성

둘다 생성자가 생기지만 public 키워드 접근제한자 생성차이?


메모리에 올라가기 위해선 필드값이 초기화 되어야하는데

생성자가 필드값을 초기화해주는 역할을 한다


A() 생성자를 만들어서 필드값 초기화 후 메모리에 올림



필드영역에 생성자를 코드로 만들거나

생성자가 없을 경우 defalut constructor디폴트생성자가 생긴다


*/









public static void main(String args[]){


A a = new A(); 

// 매개변수 없는 생성자를 찾아간다 A클래스타입의 자기 자신을 데이터로 사용

System.out.println(" a 참조변수: 주소값 : " + a);

System.out.println(" a.i : " + a.i);

System.out.println(" a.str: " + a.str);

A a1 = new A(26);

// 매개변수 한개 있는 생성자를 찾아간다.

System.out.println(" a1 참조변수 : 주소값 : " + a1);

A a2 = new A(26, "전준성");

//매개변수 두개 있는 생성자를 찾아간다.

System.out.println(" a2 참조변수 : 주소값 : " + a2);


} // end of main()


} // end of A class


/*

1. 코드를 작성 A.java : 물리적인 파일

2. 클래스를 생성 A.class : 물리적인 파일

3. A.class 가지고 실행한다.

:우리눈에 보이지 않음

:JVM하고 CPU 서로 무슨말인지 모르지만 대화

:A.class 에서 객체를 생성해서 일을 한다.

*/










public class AA{



class CC

{

} // end of CC class



public static void main(String args[]){

System.out.println(" AA main()");

} // end of main()


} // end of AA class


class BB

{

public static void main(String args[]){

System.out.println(" BB main()");

/*

이렇게 해도 출력은 되지만 오류날 개연성이 있어 하지말아야 한다

메인함수는 클래스명AA인 곳에서

*/

}

} // end of BB class


/*

자바 파일 안에 클래스를 여러개 만들 때는 public 키워드가 붙어 있는 클래스 파일이름으로 저장

public 클래스 안에는 꼭 메인함수가 있어야한다

*/








package a.b.c;




import java.lang.String;

import x.y.z.BBB; 

/*

x.y.z패키지의 BBB사용자정의클래스파일로 부터 받아온다 BBB사용자정의클래스

래퍼클래스는 키워드에 있는 거 불러올때!

불러올 BBB의 변수나 함수에 키워드 public 필요

*/


public class AAA{


public static void main(String args[]){

BBB b = new BBB(); // BBB클래스 자기자신을 데이터로 사용 메모리에 올리게 명령

   // 멤버필드에 생성자코드 없으니까 디폴트생성자 생성될 것이다

b.workBBB(); // b참조변수의 workBBB함수 실행

System.out.println(" BBB.INT_VAL >>> : " + BBB.INT_VAL); // BBB클래스의 상수(변수?)값 출력

} // end of main()


} // end of AAA class




/*

C:\00.KOITT\10.JExam\test>javac -d . AAA.java

-- 패키지 컴파일 

1. javac 컴파일러

2. -d : 디렉토리를 만드세요 

3. . : 현재디렉토리에서 

4. AAA.java : 컴파일할 자바화일 


C:\00.KOITT\10.JExam\test>javap a.b.c.AAA

Compiled from "AAA.java"

public class a.b.c.AAA {

  public a.b.c.AAA();

  public static void main(java.lang.String[]);

}


C:\00.KOITT\10.JExam\test>java a.b.c.AAA


C:\00.KOITT\10.JExam\test>

*/




package x.y.z;


public class BBB{


public static final int INT_VAL = 1; // 상수값이라 final키워드 필요하고 int데이터타입

// 함수가 아니고 변수라서 void X   void는 함수 앞에!


public void workBBB(){ // 리턴값없는 workBBB함수 매개변수X

System.out.println(" workBBB() 함수 "); // workBBB() 함수 출력

}

}

댓글