객체(사물, 업무)를 주제로 정의하고 주제에 맞는 특징을 저장, 주제에 맞는 기능을 저장
(접근제어자) class 클래스 이름 {
멤버 변수;
메서드;
}
//폴더(패키지) test;
package test;
// public 모두 접근할 수 있는 클래스
public class Student {
// 클래스 : 학생 객체(주제) 정의
// 멤버변수(학생의 특징 저장하는 변수)
// 학생번호, 학생이름, 국어점수, 영어점수, 수학점수
// public 모두 접근할 수 있는 변수
public int num; // 초기값 정의 X
public String name;
public int kor;
public int eng;
public int math;
// 멤버함수(메서드=> 학생의 관련된 기능의 정의 하는 함수)
// public 모두 접근할 수 있는 함수
public void prn() {
System.out.println("학생 정보 출력");
}
}
public class Tree {
// 멤버변수(나무의 특징 저장하는 변수)
// 나무의 이름, 나무의 나이
public String treeName;
public int treeAge;
// 멤버함수(메서드=> 나무의 관련된 기능 정의하는 함수)
// prn2() 출력 "나무가 자란다"
public void prn2() {
System.out.println("나무가 자란다");
}
}
public class Animal {
// 멤버변수(동물의 특징 저장하는 변수)
// 동물의 이름, 동물의 나이
String animalName;
int animalAge;
// 멤버함수(메서드-> 동물 관련된 기능 정의하는 함수)
// run() 출력 "동물이 달린다"
public void run() {
System.out.println("동물이 달린다");
}
}
모든 대상(사물, 업무)를 파악(식별)할 수 있는 주제
분석 - 객체 모델링
객체의 구성요소(속성, 특징)와 동작(기능)을 추출하는 과정
ex) 학생 : 학번, 이름, 학년, 사는 곳, 국어점수, 점수합계, 점수평균, ...
설계 - 클래스 정의 => 모델링을 통해서 클래스 정의
1) 멤버변수 : 객체 구성요소(속성, 특징)
2) 메서드(멤버함수) : 객체 동작(기능)
구현 - 객체 생성 사용
=> 객체생성 : 기억장소 할당(메모리 공간 생성)
=> 사용 : 기억장소 접근해서 멤버 변수, 메서드 호출
Student s = new Student();
// s기억장소에 저장된 Student의 기억장소의 주소값(4byte)
System.out.println(s); //test.Student@7c30a502 주소값
System.out.println(s.num); // 0
System.out.println(s.name); // null
System.out.println(s.kor); // 0
System.out.println(s.eng); // 0
System.out.println(s.math); // 0
s.num=1;
s.name="홍길동";
s.kor=100;
s.eng=90;
s.math=80;
System.out.println(s.num); // 1
System.out.println(s.name); // 홍길동
System.out.println(+s.kor); // 100
System.out.println(+s.eng); // 90
System.out.println(+s.math); // 80
s.prn(); // 학생 정보 출력