2021.01.26 국비교육 16일차

[TOC]

생성자

  • 리턴타입이 없으며 반드시 클래스명으로 지정
  • 자동으로 기본 생성자 생성
public class Student {
    //이름, 나이, 주소, ssn 변수 선언
    //4개의 값을 초기화 할 수 있는 생성자 작성

    String name;
    int age;
    String address;
    String ssn;

    public Student(String name, int age) {
        this(name, age, "경기", "???????"); // 매개변수 4개 호출
    }

    public Student(String name) {
        this(name, 10);
        //public Student(String name, int age, String address, String ssn)
        //이걸 호출하는 거랑 똑같음 
        //클래스 안의 다른 생성자를 클래스 안에서 직접 호출 사용 : 생성자의 맨 첫줄에 작성해야함

//        this.name = name;
//        this.age = 10;
//        this.address = "서울";
//        this.ssn = "???????";
    }

    public Student(String name, int age, String address, String ssn) {
        this.name = name;
        this.age =age;
        this.address =address;
        this.ssn =ssn;        
    }

    public Student() {}
}
public class TestStudent {

    public static void main(String[] args) {

        Student stu1 = new Student("홍길동", 10, "서울", "1234");
        System.out.println(stu1.name + "\t" + stu1.age+ "\t" + stu1.address + "\t" + stu1.ssn);


        Student stu2 = new Student("이순신");
        System.out.println(stu2.name + "\t" + stu2.age+ "\t" + stu2.address + "\t" + stu2.ssn);

        Student stu3 = new Student("강감찬", 20);
        System.out.println(stu3.name + "\t" + stu3.age+ "\t" + stu3.address + "\t" + stu3.ssn);

        Student stu4 = new Student("유관순");
        System.out.println(stu4.name + "\t" + stu4.age+ "\t" + stu4.address + "\t" + stu4.ssn);
    }
}

객체 생성

  • 문법 : 클래스명 참조변수명 = new 클래스명([인자]);

  • 정의한 클래스를 이용하여 실객체를 메모리에 올리는 방법

  • 메모리에 올라간 클래스의 구현체를 인스턴스(instance)라고 한다.

  • heap 메모리에 클래스의 멤버가 생성

오버로딩 메소드/ 오버로딩 생성자

  • 기본적으로 같은 클래스내에서는 이름이 중복되면 식별이 불가능 하기 때문에

    이름이 중복되면 에러가 발생함

    but 메소드와 생성자는 이름과 파라미터로 식별이 가능하여 여러개 지정할 수 있음 이것을 '오버로딩'이라 함

  • 규칙

    반드시 인자리스트(순서,타입,개수) 달라야함

this 키워드

  • this는 객체 생성후에 메모리에 올라간 자기자신의 인스턴스를 가리킨다.

    다른 클래스에서는 참조변수명을 사용하여 생성된 인스턴스를 참조할 수 있지만

    자기 자신이 참조할 때는 this 키워드를 사용한다.

메소드

  • 일반적으로 인스턴스 변수에 저장된 데이터를 수정 및 조회하는 역할
  • 객체 생성 후 명시적으로 호출해야 수행됨

getter / setter

  • getter : 특정 결과값을 얻고자 작성한 메소드
  • setter : 특정값을 설정하고자 할때 사용
  • 두개를 사용하는 이유 : 데이터 무결성을 유지하기 위해서
  • 데이터를 통제 할 수 있는 단위 (캡슐)로 나눈 다음 메소드를 활용하여 데이터 주고받음
public class Student {
    String name;
    int age;
    String address;

    public String getData() {
//        return this.name + "\t" + this.age + "\t" +this.address;
        return getName() + getAge() + getAddress();
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Student(String name, int age, String address) {
        super();
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public Student() {

    }



}

+ Recent posts