본문 바로가기
Language/JAVA

[JAVA] 05일차. 클래스와 객체1 (1), (2)

by 전전긍긍 2022. 2. 11.

👀202202011 공부기록

 

📍본 포스팅은 인프런-Do it! 자바 프로그래밍 입문 강의를 바탕으로 작성함을 알립니다.

 

[무료] Do it! 자바 프로그래밍 입문 - 인프런 | 강의

비전공자, 문과생도 무릎을 ‘탁!’ 치며 이해하는 20년 경력 명강사의 자바 강의!, - 강의 소개 | 인프런...

www.inflearn.com


09. 클래스와 객체1 (1)

📍객체 지향 프로그래밍(OOP, Object-Oriented-Programming)

객체 지향 프로그래밍(OOP)은 객체(object)를 기반으로 하는 프로그래밍이다. 여기서 객체(object)는 구체적, 추상적 데이터 단위로 실생활에서 우리가 인식할 수 있는 사물로 설명할 수 있다. 이러한 객체의 상태(state)와 행동(behavior)을 구체화하는 형태의 프로그래밍이 바로 OOP이다. 객체 지향 프로그래밍 외에 절차 프로그래밍이 있다. 절차 프로그래밍이 시간의 흐름에 따른 프로그래밍이라면, 객체 지향 프로그래밍은 (1)객체를 정의, (2)객체의 기능을 구현, (3)객체 사이의 협력을 구현 (즉객체의 상태와 행동을 구체화하는 과정)한다.

📍클래스(class)

클래스는 객체에 대한 속성과 기능을 코드로 구현한 것이다. 객체를 정의하는 틀 또는 설계도라고 생각하면 된다. 클래스는 객체의 상태(속성)를 나타내는 필드(field, 멤버 변수)객체의 행동(기능)을 나타내는 메소드(method)로 구성된다.

+) field란 클래스에 포함된 변수(variable)를 의미한다. (멤버 변수라고도 한다.)

+) method란 어떠한 특정 작업을 수행하기 위한 명령문의 집합이라 할 수 있다.

 

클래스를 어떻게 정의하나요?

(Class를 정의할 때는 대부분 대문자로 시작한다.)

(접근 제어자) class 클래스 이름 {

	//멤버변수
	접근제어자 필드1타입 필드1의이름;
	접근제어자 필드2타입 필드2의이름;
    
    //메서드
	접근제어자 메소드1의_원형
	접근제어자 메소드2의_원형

}

car라는 이름의 클래스

 

*) 하나의 java파일에 하나의 클래스를 두는 것이 원칙이나, 여러 개의 클래스가 같이 있는 경우 public클래스는 단 하나이며, public클래스와 자바 파일의 이름은 동일해야 한다. 자바의 모든 코드는 class내부에 위치한다. 

 

1️⃣객체를 참조하기 위한 참조변수를 선언한다.

//클래스이름 객체참조변수이름;
Student studentLee;

2️⃣new키워드를 사용하여 인스턴스를 생성하고, 해당 인스턴스의 주소를 미리 선언한 참조 변수에 저장하여 사용한다.

//객체참조변수이름 = new 클래스이름();
studentLee = new Stuedent();

✖️ 참조 변수의 선언과 인스턴스의 생성을 동시에 할 수도 있다.

//클래스이름 객체참조변수이름 = new 클래스이름();
Student studentLee = new Student();

(전체코드)

package classpart;

//class이름은 대문자로
public class Student {

	//멤버변수
	int studentID;
	//문자열을 구현해놓은 클래스
	String studentName;
	
	int grade;
	String address;
	
   	//메소드
	public void showStudentInFor() {
		System.out.println(studentName + " , " + address);
        
   
	public static void main(String[] args) {
		Student studentLee = new Student();
		studentLee.studentName = "개츠비";
		studentLee.address = "서울특별시 강북구 미아동";
		
		studentLee.showStudentInFor();
	}
}
	
}
 //개츠비 , 서울특별시 강북구 미아동

10. 클래스와 객체1 (2)

📍메서드(method)

메서드는 함수의 일종이다. 객체의 기능(객체가 하는 행동)을 제공하기 위해 클래스 내부에서 구현되는 함수이다. 클래스에서 메서드를 작성하여 사용하는 이유는 중복되는 코드의 반복적인 프로그래밍을 피할 수 있기 때문이다. (함수의 일종이기 때문에 함수가 하는 일과 같다고 볼 수 있다.)

+) 함수란? 하나의 기능을 수행하는 일련의 코드. 중복되는 기능은 함수로 구현하여 함수를 호출하여 사용함.

접근제어자 반환타입 메소드이름(매개변수목록) { //선언부
	//구현부
}

1. 접근 제어자 : 해당 메서드에 접근할 수 있는 범위를 명시한다.

2. 반환타입(return type) : 메서드가 모든 작업을 마치고 반환하는 데이터의 타입을 명시한다.

3. 메서드 이름 : 메서드를 호출하기 위한 이름을 명시

4. 매개변수 목록(parametes) : 메서드 호출 시에 전달되는 인수의 값을 저장할 변수들을 명시

5. 구현부 : 메서드의 고유 기능을 수행하는 명령문의 집합

 

1️⃣매개변수가 없는 메서드의 호출

//객체참조변수이름.메서드이름();

public String getStudentName() {
	return studentName;
}

2️⃣매개변수가 있는 메서드의 호출

//객체참조변수이름.메서드이름(인수1, 인수2, ...);

public void setStudentName(String name) {
	studentName = name;
}