본문 바로가기

카테고리 없음

클래스 수업1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package day_09;
 
 
// 같은 패키지 내에서만 접근이 가능하다. 
class point {
        int x;
        int y;
        
        
        // 모든 클래스는 object 클래스를 자동 상속받는다. 
        // 상속이되면 부모 클래스의 멤버를 재정의(Override) 가능하다. 
        // toString() 메소드가 재정의. << 오브잭트마다 다 있다. 
        // toString() 정의:: 객체를 호출했을 떄(객체를 사용할때) 자동으로 호출됨
        // 오브잭트 안 매서드를 저장의.  
        
//        @Override
//        public String toString() { 
//        // TODO Auto-generated method stub
//        // return super.toString(); // super = 부모를 뜻한다.  부모를 따라한ㄴ다..
//            
//        return "x= " + x + " y= " + y;
//        }
        
        // 이클립스의 자동화 기능으로 위 override 마우스 우클릭 > 소스 > toString
        
        @Override  // 사용하지 않으면 오브잭트에서 해시코드만 보여주게된다.
        public String toString() {
            return "point [x=" + x + ", y=" + y + "]";
        } 
}
 
public class Day09Ex01 {
 
    public static void main(String[] args) {
        // 참조변수를 선언한다.
        // 클래스는 사용자 정의 자료형(type)이다. (타입 = 자료형) 
        // 클래스로 선언한 변수는 참조(reference) 변수이다. 
        // 참조변수에는 객체의 주소가 들어간다. 선언된 타입 point 의 객체주소만 들어갈 수 있다. 
        point pt01;
        // 객체를 생성해서 참조변수에 주소(참조값)를 넘긴다. 
        pt01= new point();
        
        // 참조변수를 통해서 객체내의 멤버를 접근한다.
        // 멤버 접근 연산자는 = 점(.)
        pt01.x = 100;
        pt01.y = 200;
        
        // 객체(맴버) 에 저장된 값을 확인한다.
        //System.out.println("x= " + pt01.x + " y= " + pt01.y);
        
        System.out.println(pt01); // pt01이라고 그냥 입력하면  해시태그만 나온다. 
        
 
    }
 
}
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package day_09_02;
 
class Point {
    
    // private는 객체 내부에서만 접근이 가능하다. ( 접근 - 쓸 수 있다.) 
    private int x;
    private int y;
    //public은 객체 외부에서 접근 가능하다. (다른 클래스, 다른 팩키지에서 접근 가능) 
    // 캡슐화를 위해서 멤버 필드는 private 선언하고
    // 메소드는  public으로 선언한다. (일반적인 클래스의 구조)
    
    
    
    // setters -값을 받아서 넣는거 
    //public void setX(int _x) {
    //    x = _x;
    //}
    //public void setY(int _y) {
    //    y = _y; 
    //}
    
    // getters - 값을 리턴
    //public int getX(){
    //    return x;
    //}
    //public int getY(){
    //    return y;
    //}
    
    
    // 자동생성 > 소스 > 세터게터 
    public int getX() {                // 다른 패키지에서도 접근할 수 있다. 
        return x;
    }
    
    public void setX(int x) {
        this.x = x;                  // this는 자기 자신을 가리키는 참조변수이다. 외부에서는 클래스으 ㅣ참조값이 pt01이 되지만, 내부에서는 this가 된다
    }                                // 
    
    public int getY() {
        return y;
    }
    
    public void setY(int y) {
        this.y = y;
    }
    
    
    
    
    
    
    @Override
    public String toString() {
        return "Point [x=" + x + ", y=" + y + "]";
    }
 
    
}
 
public class Day09Ex02 {
 
    public static void main(String... args) {
        Point pt= new Point();
        //pt.x= 100;
        //pt.y= 200; 
        
        pt.setX(1000);
        pt.setY(2000);
        
        //System.out.println(pt);
        System.out.println();// 프라이빗으로 막아놔서 외부에서는 접근할 수 없다,
        
    }
 
}
}
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package day_09_02;
 
public class Day09Ex03 {
 
    //2) 객체가 만들어짐
    
    public void print(int a) { 
        System.out.println("print 1 호출");
        System.out.println(a);
    }
    
    public void print(int a, int b) { 
        System.out.println("print 2 호출");
        System.out.println(a);
        System.out.println(b);
    }
    
    public void print(int a, int b, int c) { 
        System.out.println("print 3 호출");
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }
    
    // 3) 오버로딩이됨. 매개변수의 개수가 각각 다르다. 
    
    
    public static void main(String[] args) {
        Day09Ex03 obj= new Day09Ex03(); // 1) 객체 생성
        obj.print(100, 200, 300);
    }
 
}
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package day_09_02;
 
import java.util.Arrays;
 
public class Day09Ex04 {
 
    //2) 객체가 만들어짐
    
    public void print(int ... a) {  // a> 배열이라는 말 
        System.out.println(Arrays.toString(a));
    }
    
    
    // 3) 오버로딩이됨. 매개변수의 개수가 각각 다르다. 
    
    
    public static void main(String[] args) {
        Day09Ex04 obj= new Day09Ex04(); // 1) 객체 생성
        obj.print(100, 200, 300, 400, 500);
    }
 
}
 
cs