ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2023년 06월 05일 수업 내용 정리
    국비 교육 내용 정리 2023. 6. 7. 09:30

    package ch06.obj1;

    public class MemberCallEx1 {

    static int cv1 = 10;

    static int cv2 = cv1; // 클래스멤버간 호출

    int iv1 = 100;

    int iv2 = iv1; // 인스턴스멤버간 호출

    int iv3 = cv1; // 인스턴스멤버에서 클래스 멤버 호출

    // static int cv3 = iv1 //클래스 멤버에서 인스턴스 멤버 호출. => 객체화 필요

    static int cv3 = new MemberCallEx1().iv1;

    public static void main(String[] args) {

    // cv2 = iv1; // 클래스 멤버인 main 메서드에서 iv1 인스턴스멤버 접근 불가

    cv2 = new MemberCallEx1().iv1;

    new MemberCallEx1().iv1 = cv2;

    // method(); // error

    new MemberCallEx1().method1();

    method2();

    } //2

    void method1() {

    System.out.println(cv1 + cv2);

    System.out.println(iv1 + iv2);

    }

    static void method2() {

    System.out.println(cv1 + cv2);

    // System.out.println(iv1 + iv2);

    MemberCallEx1 m = new MemberCallEx1();

    System.out.println(m.iv1 + m.iv2);

    }

    }

     

     

     

    package ch06.obj1;

    public class MemberCallEx2 {

    static int cv1 = 10;

    static int cv2 = cv1;

    int iv1 = 100;

    int iv2 = iv1;

     

    public static void main(String[] args) {

    MemberCallEx2 m = new MemberCallEx2();

    cv2 = m.iv1;

    m.method1();

    method2();

     

    }

    void method1() {

    System.out.println(cv1 + cv2);

    System.out.println(iv1 + iv2);

    }

    static void method2() {

    MemberCallEx2 m = new MemberCallEx2();

    System.out.println(cv1 + cv2);

    System.out.println(m.iv1 + m.iv2);

    }

    package ch06.obj1;

    public class OverloadEx1 {

    public static void main(String[] args) {

    Math3 m = new Math3();

    System.out.println(m.add(10));

    System.out.println(m.add(10.3));

    System.out.println(m.add("번"));

    }

    }

    class Math3 {

    int a = 100;

    double add(int b) {

    System.out.println("1:");

    return a + b;

    }

    double add(float b) {

    System.out.println("2:");

    return a + b;

    }

    double add(double b) {

    System.out.println("3:");

    return a + b;

    }

    double add(long b) {

    System.out.println("4:");

    return a + b;

    }

    double add(String b) {

    System.out.println("5:");

    return a + Double.parseDouble(b);

    }

    }

     

     

     

     

    package ch06.obj1;

    /*

    * 오버로딩된 메서드의 선택 기준

    * 1. 호출시 입력된 자료형과 선언부의 선언된 자료형이 동일한 메서드 선택.

    * 2. 1의 조건이 없는 경우

    * 최소 갯수로 자동형변환이 되는 매개변수를 가진 메서드를 선택.

    * 3. 주의사항

    * 최소 갯수로 자동형변환이 되는 메서드가 여러개인 경우 오류 발생.

    *

    * 오버로딩의 조건

    * 1. 메서드의 이름이같다.

    * 2. 매개변수 (type)목록이 다르다

    *

    * 리턴타입, 접근제어자동은 상관없다.

    *

    */

    public class OverloadEx2 {

    public static void main(String[] args) {

    Math4 m = new Math4();

    System.out.println(m.add(10, 10));

    System.out.println(m.add(10, 10L));

    System.out.println(m.add(10L, 10));

    System.out.println(m.add(10L, 10L));

    }

    }

    class Math4 {

    int add(int a, int b) {

    System.out.println("int int 메서드 결과:");

    return a + b;

    }

    long add(long a, int b) {

    System.out.println("long int 메서드 결과:");

    return a + b;

    }

    long add(int a, long b) {

    System.out.println("long int 메서드 결과:");

    return a + b;

    }

    long add(long a, long b) {

    System.out.println("long int 메서드 결과:");

    return a + b;

    }

    }

    package ch06.obj1;

    /*

    * 생성자란 ?

    * 객체화시 호출되는 메서드

    * 생성자 없이 객체 생성은 불가함.

    * 기능은 인스턴스 변수의 초기화 담당함.

    *

    * 생성자 구현

    * 1. 생성자의 이름은 클래스명과 같다.

    * 2. 리턴타입을 기술하지 않는다.

    *

    * 기본생성자

    * 클래스에 생성자를 하나도 구현하지 않으면 컴파일러가 추가해주는 생성자

    * public 클래스명(){} 형태임

    */

    public class ConstructorEx1 {

    public static void main(String[] args) {

    Number1 n1 = new Number2();

    n1.num = 10;

    Number2 n2 = new Number2();

    Number2 n3 = new Number2(20);

    System.out.println("Number1 클래스의 num = " + n1.num);

    System.out.println("Number1 클래스의 num = " + n2.num);

    System.out.println("Number1 클래스의 num = " + n3.num);

    }

    }

    class Number1 {

    int num;

    }

    class Number2 extends Number1 {

    int num;

    Number2() {

    }

    Number2(int x) {

    num = x;

    }

    }

Designed by Tistory.