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() 함수 출력
}
}
'수업' 카테고리의 다른 글
10월 12일 숫자->문자, 문자->숫자(Ascii) (0) | 2018.10.12 |
---|---|
10월 11일 - 명령행인수(CommandLineArg) (0) | 2018.10.11 |
10월 8일 - static, class, Literal, MethodMath (0) | 2018.10.08 |
10월 7일 (0) | 2018.10.07 |
10월 5일 - return형 함수, void 함수 (0) | 2018.10.05 |
댓글