728x90
반응형
module 최소단위 class - package - project
ExClass ec = new ExClass();
ExClass ec1 = ec ;
ec&ec1 주소값을 공유하기에 instance 값도 공유 한다.
ec.a = 5;
System.out.println(ec1.a) ; // 5
Ex08Main
public class Ex08Main { public static void main(String[] args) { Ex08Class e8c = new Ex08Class(); //주소값 double result; e8c.test(); e8c.test(5,10); result = e8c.test(100); //int > double 묵시적 업캐스팅 // 자동형변환을 거쳐 void test(double a)를 실행 System.out.println("e8c.test(100)의 결과 : " + result); result = e8c.test(4.2); System.out.println("e8c.test(4.2)의 결과 : " + result); } } |
매개변수 없음 매개변수 int 5와 int 10 매개변수 double 100.0 e8c.test(100)의 결과 : 200.0 매개변수 double 4.2 e8c.test(4.2)의 결과 : 8.4 |
public class Ex08Class { void test() { System.out.println("매개변수 없음"); } void test(int a, int b) { System.out.println("매개변수 int " + a + "와 int " + b); } double test (double a) { System.out.println("매개변수 double "+ a); return a * 2; } } |
참조변수는 주소값을 저장하면서 class급 이상을 만듬
기본자료형은 반드시 영어 소문자로 기재.
한 개의 Java파일에 여러 개의 클래스를 기술할 때 public키워드를 붙일 수 있는 조건
*클래스명과 자바파일의 이름이 동일해야한다.
일반클래스와 메인클래스가 섞여있는 경우
1. 반드시 여러 개의 클래스 중에서 한 개의 클래스만 public키워드를 붙일 수 있다.
2. 반드시 메인클래스를 선언하는 곳의 접근 제어자가 public이어야 한다.
3. 파일명은 public 키워드가 붙어있는 클래스의 이름과 동일해야한다.
일반클래스들만 여러 개가 있는 경우
1. 반드시 여러 개의 클래스 중에서 한 개의 클래스만 public키워드를 붙일 수 있다.
2. 파일명과 동일한 이름의 클래스에만 public 키워드를 붙일 수 있다.
생성자 오버로딩(Constructor Overloading) |
|
동일한 이름의 생성자를 한 class에 여러 개 만들어 두는 것 | |
<필수1> 매개변수의 갯수가 달라야 함. |
void sum(int a){ } ① void sum(int a, int b){ } ① ② |
<필수1> 매개변수의 자료형이 달라야 함. |
void sum(int a){ } void sum(double a){ } |
<필수1> 매개변수의 갯수와 자료형이 일치하면 나열 순서가 달라야 한다. |
void sum(int a, String b){ } ↙ void sum(String b, int a){ } |
class의 이름이 동일해야 한다. |
매개변수 arguments
클래스 선언시에는 ()소괄호가 없음
매소드와 생성자는 ()소괄호, {}중괄호가 있음
Ex09
class Ex09Class {
int x;
int y;
//생성자 : 객체를 생성할 수 있도록 해주는 기능
public Ex09Class() {
System.out.println("매개 변수가 없는 디폴트 생성자");
}
public void showPoint() {
System.out.println( x + ", " +y );
}
}
public class Ex09Main {
public static void main(String[] args) {
//자료형(=클래스명) 객체명 - new 생성자호출문(=클래스명);;
Ex09Class e9c = new Ex09Class();
e9c.showPoint();
}
}
더보기
매개 변수가 없는 디폴트 생성자
0, 0
new Ex09Class();
instance&자료호출 및 실행
Ex10Main
class Ex10Class {
int x; //속성
int y;
//생성자가 아무 것도 없을 시 public Ex10Class() {} 숨어있음
public Ex10Class() { //기본 생성자
System.out.println("매개 변수가 없는 디폴트 생성자");
}
// Costrutor Overloading
public Ex10Class(int new_x, int new_y) {
x = new_x;
y = new_y;
}
public void showPoint(){ //method
System.out.println( x + ", " + y );
}
}
public class Ex10Main {
public static void main(String[] args) {
Ex10Class pt06 = new Ex10Class();
// 객체를 생성하려면 기본생성자는 필수
Ex10Class pt07 = new Ex10Class(100, 200);
System.out.println( pt07.x + ", " + pt07.y);
//instance&명령문실행
Ex10Class pt08 = new Ex10Class(300, 400);
System.out.println( pt08.x + ", " + pt08.y);
}
}
class Ex10Class { int x; //속성 int y; //생성자가 아무 것도 없을 시 public Ex10Class() {} 숨어있음 public Ex10Class() { //기본 생성자 System.out.println("매개 변수가 없는 디폴트 생성자"); } // Costrutor Overloading public Ex10Class(int new_x, int new_y) { x = new_x; y = new_y; } public void showPoint(){ //method System.out.println( x + ", " + y ); } } public class Ex10Main { public static void main(String[] args) { Ex10Class pt06 = new Ex10Class(); // 객체를 생성하려면 기본생성자는 필수 Ex10Class pt07 = new Ex10Class(100, 200); System.out.println( pt07.x + ", " + pt07.y); //instance&명령문실행 Ex10Class pt08 = new Ex10Class(300, 400); System.out.println( pt08.x + ", " + pt08.y); } } |
매개 변수가 없는 디폴트 생성자 100, 200 300, 400 |
728x90
반응형
'[JAVA]' 카테고리의 다른 글
[20231220] 8일차 - 객체 (0) | 2023.12.20 |
---|---|
[20231219] 7일차 오후 (0) | 2023.12.19 |
[20231218] 6일차 오후 method overloading class (0) | 2023.12.18 |
[20231218] 6일차 오전 - 메소드 절대값 오버로딩 (0) | 2023.12.18 |
[20231215] 5일차 오후 배열 (0) | 2023.12.15 |