제주 탈출 일지

패스트캠퍼스 챌린지 9일차 본문

패스트캠퍼스 챌린지!

패스트캠퍼스 챌린지 9일차

귀건 2021. 9. 14. 23:44
728x90
반응형

9일차 ...... 렛스고

 

04. 객체의 속성은 멤버 변수로, 객체의 기능은 메서드로 구현한다.

Student studentLee = new Student(); // 생성자. Student하나를 생성해라.

new 를 통해 하나의 객체를 생성 -> 인스턴스를 생성한다.

클래스를 기반으로 여러 인스턴스를 생성할 수 있다.

 

package ch04;

public class Student {
	
	public int studentID;
	public String studentName;
	public String address;
	
	public void showStudentInfo() {
		System.out.println(studentID + " 학번의 이름은 " + studentName + " 이고, 주소는 " + address + "입니다.");
	}
	
	public String getStudentName() {
		return studentName;
	}
	
	public void setStudentName(String name) {
		studentName = name;
	}

}

 

멤버 변수들의 값을 넣어보고, 메소드를 사용해보았다.

인스턴스는 힙 메모리에 생성된다. - > 다음 강의에서 이야기.

 

05. 인스턴스 생성과 힙 메모리.

클래스를 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 됨.

new, malloc 키워드를 통해 동적 메모리를 할당받는다(heap)

다 쓰고 나면 메모리를 해제함. (C는 free(), Java는 Delete)

 

인스턴스 이름을 println하면, 패키지 이름.클래스 @ 주소가 찍힌다.

 

studenLee와 studentKim은 Heap의 일부 영역을 할당받는다. 그 영역에 멤버 변수 등이 저장된다.

studentLee를 참조 변수reference variable라고 이야기하고 메모리 어드레스같은 것을 참조값reference value이라고 이야기한다.

 

정리...

객체. 객체 지향 프로그램의 대상

클래스는 객체를 프로그래밍하기 위해 코드로 정의해놓은 상태.

멤버 변수 클래스의 속성, 특성

메서드 멤버 변수를 이용하여 클래스의 기능을 구현한 함수

참조 변수 메모리에 생성된 인스턴스를 가리키는 변수

참조 값 생성된 인스턴스의 메모리 주소 값

 

클래스 생성에 대해서 잘 이해가 안되면, 클래스를 지워서 다시 한번 구현해보자.

다음 강의에는 생성자에 대해서 이야기 할것..

 

06. 생성자에 대해 알아봅시다.(constructor)

객체를 생성할 때는 반드시 생성자를 사용해야 하고, 그 객체는 힙 메모리에 할당된다.

자바 클래스의 경우 생성자가 없으면 디폴트 생성자가 자동으로 생성된다.

생성자는 new 키워드와 함께 사용한다.

생성자는 객체를 생성할 때만 사용됨...

생성자는 반환 값이 없고, 클래스 이름과 동일하다.

대부분은 생성자는 외부에서 생성하기 위해 만들어진 것이기 때문에 접근 가능하지만, 가끔 private로 선언되는 경우도 있다.

 

package ch06;

public class Student {

	
	public int studentNumber;
	public String studentName;
	public int grade;
	
	public Student() {
		
	} // constructor overloading
	
	public Student(int studentNumber, String studentName, int grade) {
		// 가독성을 위해 이름을 같게함. this 키워드 사용.
		this.studentNumber = studentNumber;
		this.studentName = studentName;
		this.grade = grade;
		
	}
	
	public String showStudetInfo() {
		
		
		return studentName + "학생의 학번은 " + studentNumber + " 이고, " + grade + "학년 입니다.";
	}
}

디폴트 생성자는 생성자가 없을 때만 제공되기 떄문에, 생성자를 따로 만들었다면 제공되지 않는다.

생성자는 constructor overloading을 통해 여러개 만들 수 있다.

 

오늘 중요한 내용들을 많이 공부했다. 다시 한번 정리해야 할 것 같다...

 

 

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

728x90
반응형
Comments