1. 객체(Object) 란?
구체적 추상적 데이터의 단위를 객체라고 표현한다.
사람, 자동차와 같은 사물 및 주문, 관리, 생산과 같은 행위 모두 객체로 표현할 수 있다.
2. 객체지향 프로그래밍(Object Oriented Program: OOP) 이란?
객체를 기반으로 하는 프로그래밍이다.
객체를 정의 및 기능을 구현하고 객체 간의 협력을 구현한다.
절차 지향 프로그래밍에 비해 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 프로젝트 개발에 많이 사용한다.
3. 클래스(Class) 란?
객체를 코드로 구현한 것이다.
객체지향 프로그래밍의 가장 기본적인 요소이다.
1) 멤버 변수(member variable, attribute)
객체가 가지는 속성을 변수로 표현한 것이다.
학생에 대한 정보를 저장하기 위해 각각 저장할 항목들을 정리하였다.
Student 클래스 안에 학번(studentID), 이름(studentName), 주소(address) 멤버 변수가 존재한다.
public class Student {
public int studentID; //학번
public String studentName; //이름
public String address; //주소
}
2) 메서드(method)
객체의 기능을 구현한 것이다.
위에서 생성한 학생들의 정보를 통해 기능을 구현하기 위해서 학생 정보를 출력하는 메서드를 생성하였다. 학생들의 정보를 출력하기 위해 showStudentInfo라는 메서드를 생성하였고 메서드 내부에 학생 정보를 출력하는 코드를 작성하였다.
public class Student {
public void showStudentInfo() { //학생 정보 출력
System.out.println("학번:" + studentID);
System.out.println("이름:" + studentName);
System.out.println("주소:" + address);
}
}
자바 파일 하나에 여러개의 클래스가 존재할 수 있지만 public 클래스는 하나이고 public 클래스 이름과 자바 파일의 이름은 동일해야한다.
4. 클래스와 객체를 활용한 정보 출력
메인 메서드를 따로 구성한 후 안에 이전 멤버 변수, 메서드를 설명할 때 생성한 학생 객체를 를 이용하여 객체에 값을 대입하여 정보를 출력하려고 한다.
1) Student.java
package classpart;
public class Student {
public int studentID; //학번
public String studentName; //이름
public String address; //주소
public void showStudentInfo() { //학생 정보 출력
System.out.println("학번:" + studentID);
System.out.println("이름:" + studentName);
System.out.println("주소:" + address);
}
}
2) StudentTest.java (main class)
public static void main(String[] args) {
Student student = new Student(); //객체 생성
//객체에 값 대입
student.studentID = 1234;
student.studentName = "피망";
student.address = "서울시";
//객체 정보 출력
student.showStudentInfo();
}
이전에 만든 Student 클래스를 이용하여 객체를 생성하기 위해서 student라는 이름으로 설정하였다.
new 키워드를 사용하여 생성자(student())로 생성한다.
Student student = new Student(); //객체 생성
생성한 객체에 학번, 이름, 주소를 대입하였다.
//객체에 값 대입
student.studentID = 1234;
student.studentName = "피망";
student.address = "서울시";
이전에 만든 학생 출력 메서드를 이용해 학생 정보를 출력하였다.
//객체 정보 출력
student.showStudentInfo();
3) 출력 결과
'Language > JAVA' 카테고리의 다른 글
[JAVA]접근 제어자(Access modifier) 개념 및 구현 (0) | 2021.02.14 |
---|---|
[JAVA] 참조 자료형(Reference data type) 개념 및 구현 (0) | 2021.02.14 |
[JAVA]생성자(Constructor), 생성자 오버로딩(Overloading) 개념 및 구현 (0) | 2021.02.14 |
[JAVA] 클래스와 객체를 이용한 간단한 예제 풀이 (0) | 2021.02.13 |
[JAVA] 함수(Function), 메서드(Method), 인스턴스(Instance) 개념 및 구현 (0) | 2021.02.13 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊