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
반응형

+ Recent posts