[Java]인스턴스, 생성자

이지현·2021년 11월 4일
1
post-thumbnail

📕1. 인스턴스

  • 1-1 인스턴스란?

    만들어 놓은 클래스를 main ()함수에서 사용하기위해 객체로 선언한 것을 인스턴스화라고 한다.

    이전에 배운 클래스는 객체로써 사용하기위해서 클래스를 정의한 것이다.
    정의해 놓은 클래스를 main()함수에서 객체로 사용하기 위해서는 객체생성이라는 단계를 거쳐야한다.

  • 1-2 객체생성(인스턴스)이란?

    객체생성이란, 만들어놓은 클래스를 main()함수에서 사용하고자 할 때 사용자가 컴퓨터에게 해당 클래스를 객체로써 사용 할 예정이니 메모리 공간을 할당해줘 하여 실제로 사용할 수 있도록 메모리 공간을 할당받게되는 과정을 인스턴스화한다 라고 말하며, 할당된 클래스를 인스턴스 또는 객체라고 한다.

  • 1-3 객체생성 방법

    student라는 클래스를 만들었고 이 클래스를 main()함수에서 객체로 사용 하고자할 때 main()함수에서 new예약어를 사용하여 객체를 생성한다.

    💡 객체 생성 문법 : 클래스명 + 객체로 쓸 이름 = new + 생성자();

  • 1-4 객체생성 예시

    Student stu = new Student();
  • 1-5 하나의 클래스로 여러개 객체생성

    하나의 클래스를 만들어 놓은 후 main()함수에서 여러개의 객체를 생성할 수 있다.
    아래 예시를 보자.

  • 1-6 여러개 객체생성 예시

student stu = new Student();
student stu2 = new Student();
// stu 와 stu2는 서로 다른 객체이다. 
// 객체 안의 속성과 메소드는 동일한 내용으로 복사가 되지만 두개의 객체가 서로 값을 공유하지는 않기 때문에 
// stu에 멤버변수 값을 초기화 하더라도 공유가 되지 않아 stu2는 초기화가 안된다.

📕2. 생성자

  • 2-1 생성자란?

    (1) 생성자는 클래스명과 동일하게 입력한다.
    (2) 생성자는 객체 생성과 동시에 멤버변수를 초기화하는 역할을 한다.
    (3) 생성자를 초기화하지 않을 경우 클래스 내에는 컴파일러가 자동적으로 default생성자(기본생성자)를 만든다.

  • 2-2 멤버변수 초기화란?

    클래스를 정의할 때 멤버벼수는 선언만하고 값을 할당하지는 않을 경우 , main()함수에서 객체 생성과 동시에 멤버변수를 초기화 시킬 수가 있는데 그 역할을 생성자가 한다.

  • 2-3 생성자 초기화 방법

    Student라는 클래스에 멤버변수가
    (1) String studentName;
    (2) int studentAge;
    를 선언 한 상태라고 가정

Student stu = new Student("이지현", 19);

main()함수에 객체생성과 동시에 값을 넣어주게 되면, stu라는 객체안에 Student클래스의 변수와 메소드가 복사가 되고, 멤버변수값을 선언한 차례대로 studentName = "이지현",
studentage = 19가 초기화된다.

  • 2-4 생성자 오버로드

    💡 생성자 오버로드란 : 생성자이름이 같고 매개변수만 다른 경우를 생성자오버로드라고 한다.

  • 2-5 생성자를 여러개 만드는 이유

    객체 생성시 매개변수를 받지 않고 생성 할 경우, 매개변수를 1개만 받고 생성 할 경우 등
    여러가지 형태로 만들어야 할 때는 생성자를 오버로드하여 여러개를 맨들어둔다.

    다만 생성자를 여러개 만들게 되면, 자바 컴파일러는 디폴트생성자를 만들지 않기 때문에
    수동적으로 사용자가 만들어줘야 한다.


📕3. 참조변수

  • 3-1 참조변수란?

    new예약어를 통하여 객체생성시 사용자가 지정한 변수를 참조변수라고 한다.

  • 3-2 참조변수 예시

Student stu = new Student(); // stu가 참조변수이다.
  • 3-3 참조변수를 활용하여 멤버변수,메소드 호출 하는 문법

    생성된 객체를 통하여 클래스 내 멤버변수와 메소드에 접근할 수 가 있다.

    💡 호출방법 : 참조변수 + .(점) + 멤버변수/메소드;

  • 3-4 참조변수를 활용하여 멤버변수,메소드 호출 예시

stu.studentName = "이지현";	// 멤버변수studentName를 초기화하는 과정
stu.getStudentName();	// 메소드getStudentName를 호출하는 과정
profile
개발 공부 중인 지현이

0개의 댓글