[3일차] 5장(1) : 클래스, 메서드, 인스턴스, 생성자
4110 단어 두잇자바프로그래밍입문두잇자바프로그래밍입문
- 객체 지향 프로그램
: 객체를 기반으로 하는 프로그램
: '어떤 대상(객체)을 가지고 프로그래밍한다'고 이해하면 됨
: 객체를 정의하고 객체 간 협력을 프로그래밍 하는 것
- 절차 지향 프로그래밍
: 순서대로 일어나는 일을 시간순으로 프로그래밍하는 것 ex. C 언어
- 클래스
: 객체 지향 프로그램은 클래스를 기반으로 프로그래밍한다. 클래스는 객체의 속성과 기능을 코드로 구현한 것. 객체를 클래스로 구현하는 것을 '클래스를 정의한다'라고 함.
(접근 제어자) class 클래스 이름 {
멤버 변수;
메서드;
}
-> 학생 클래스 만들기
-> 학생 이름과 주소 출력하는 메서드 만들기
- 패키지
: 클래스 파일의 묶음. 계층구조를 가질 수 있음. 전체 프로젝트의 소스 코드를 어떻게 관리할지와 관련있음.
- 패키지 선언하기
package domain.student.view;
public class StudentView {
}
-> 클래스 이름: StudentView
-> 클래스의 전체 이름(class full name): domain.student.view.StudentView
- 함수 정의하기
int add (int num1, int num2) { // int = 함수 반환형 / add = 함수 이름 / (int num1, int num2) = 매개변수
int result;
result = num1 + num2;
return result; // return = return 예약어
- 함수 반환형 void = 반환할 값이 없다는 예약어
- 함수 구현하고 호출하기
- 함수 호출과 스택 메모리 (p.138)
: 함수를 호출하면 그 함수만을 위한 메모리 공간이 할당되는데 이 메모리 공간을 스택(stack)이라고 부름. 스택은 마지막에 추가된 자료부터 순서대로 꺼내서 사용할 수 있으며 LIFO(Last In First Out) 구조라고 부른다.
- 학생 이름을 반환/부여하는 메서드
- 클래스 내부에 main 함수 만들기
- 클래스 외부에 main()함수를 포함한 실행 클래스 따로 만들기
- new 예약어로 클래스 생성하기
: 클래스형V변수 이름 = newV생성자;
Student studentAhn = new Student();
-> 여기서 studentAhn를 참조변수라고 하고, 이 변수가 생성된 인스턴스를 가리킨다.
-> 클래스는 하나지만 이 클래스로부터 여러 개의 각각 다른 인스턴스를 생성할 수 있다. 어떤 학교에서 학생이란 추상어는 뜻이 하나지만, 그 학교에 다니는 학생 개개인은 여러 명인 것과 마찬가지다.
- 인스턴스 여러 개 생성하기
- 참조 변수 사용하기
참조 변수.멤버 변수
참조 변수.메서드
studentAhn.studentName = '홍길동'; // studentName 멤버 변수 사용
System.out.print(studentAhn.getStudentName()); //getStudentName()메서드 사용
- 참조 값 출력하기
-> '클래스이름@주소값' => 주소값은 다른 말로 해시코드라고도 함
-> 해시코드는 자바 가상 머신에서 객체가 생성되었을 때 생성된 객체에 할당하는 가상 주소 값.
- 예제
- 생성자 테스트 하기
- 생성자
위 예제에서 자바에서 클래스를 생성할 때 사용하는 Person() 같은 함수를 생성자라고 한다. 생성자가 하는 일은 클래스를 처음 만들 때 멤버 변수나 상수를 초기화하는 것.
- 디폴트 생성자
- 생성자 만들기
-> PersonTest를 실행하면 오류가 뜨는데 생성자를 직접 구현하여 디폴트 생성자가 없기 때문이다. 자바 컴파일러는 생성자가 하나도 없는 경우에만 디폴트 생성자를 제공한다. 오류를 해결하려면 디폴트 생성자도 직접 추가하면 됨.
- 매개변수가 있는 생성자_사용하기
- 매개변수가 있는 생성자_테스트 클래스 구현하기
Author And Source
이 문제에 관하여([3일차] 5장(1) : 클래스, 메서드, 인스턴스, 생성자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@steaming_c/3일차-5장1-클래스-메서드-인스턴스-생성자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)