□객체 : 세상에 존재하는 모든것을 뜻하며 프로그래밍에서 속성과 기능을 가지는 프로그램 단위. 특정한 목적에 의하여 만들어짐. 사용중인 객체는 절대 건들지 않음.
ex 1)현실세계 ▶ 사람 → 속성: 키, 몸무게 등 / 기능 : 의사, 개발자 등
ex 2)현실세계 ▶ 자동차 → 속성: 바퀴, 엔진 등 / 기능 : 전진, 후진 등
ex 3)객체(프로그램) ▶ 날씨 프로그램 → 속성: 온도, 미세먼지 등 / 기능 : 날씨예보
ex 4)객체(프로그램) ▶ 사칙연산 프로그램 → 속성: +, -, *, / 등 / 기능 : 연산기능
□클래스 : 객체를 생성하기 위한 틀로 모든 객체는 클래스로부터 생성됨
ex)그렌저(속성: 색상, 바퀴 등 / 기능: 배기량 등) - 복제 - 그렌저1[속성: 색상(블랙), 바퀴(일반) 등 / 기능: 배기량(2000cc) 등], 그렌저2[속성: 색상(흰색), 바퀴(광폭) 등 / 기능: 배기량(2500cc) 등],그렌저3[속성: 색상(회색), 바퀴(일반) 등 / 기능: 배기량(3000cc) 등]
-클래스 = 속성(멤버변수) + 기능(메서드)
ex) 자전거 클래스 = 속성(멤버변수 : 안장, 핸들, 바구니, 기어, 페달, 바퀴) + 기능(메서드 : 기어변속, 가속, 브레이크)
○예제1) 클래스 파일 생성
package person_test;
public class Bicycle {
public String color; // ← ***클래스 속성(멤버변수)
public int price; // ← ***클래스 속성(멤버변수)
public String gear; // ← ***클래스 속성(멤버변수)
public Bicycle() {
System.out.println("Bicycle Constructor"); //← ***생성자(클래스이름과 동일) 클래스 호출시 제일먼저 호출되며 반환형이 없음
}
public void info() { //← ***클래스 메서드(일반적으로 소문자로 작명)
System.out.println(" color : " + color);
System.out.println(" info : " +price);
}
public void run() { //← ***클래스 메서드(일반적으로 소문자로 작명)
System.out.println("run");
}
public void stop() { //← ***클래스 메서드(일반적으로 소문자로 작명)
System.out.println("stop");
}
}
○예제1-1) 생성된 클래스로부터 객체 생성
package person_test;
public class MainClass {
public static void main(String[] args) {
Bicycle Bicycle_num_1 = new Bicycle(); // 클래스명 + 객체명 = new 클래그명(); & 클래스로부터 객체 생성을 위해 new 사용 & 해당 코드가 실행되면 클래스 파일에서의 생성자 코드 실행됨
Bicycle_num_1.color = "red"; // 클래스 속성을 호출하여 객체 속성 값 지정
Bicycle_num_1.gear = "auto"; // 클래스 속성을 호출하여 객체 속성 값 지정
Bicycle_num_1.price = 100000; // 클래스 속성을 호출하여 객체 속성 값 지정
System.out.println("자전거1 정보");
Bicycle_num_1.info(); // 클래스 메서드 호출 = 객체명.클래스지정메서드명();
System.out.println("자전거1 기능");
Bicycle_num_1.run(); // 클래스 메서드 호출 = 객체명.클래스지정메서드명();
Bicycle_num_1.stop(); // 클래스 메서드 호출 = 객체명.클래스지정메서드명();
Bicycle Bicycle_num_2 = new Bicycle(); // 클래스명 + 객체명 = new 클래그명(); & 클래스로부터 객체 생성을 위해 new 사용 & 해당 코드가 실행되면 클래스 파일에서의 생성자 코드 실행됨
Bicycle_num_2.color = "black"; // 클래스 속성을 호출하여 객체 속성 값 지정
Bicycle_num_2.gear = "normal"; // 클래스 속성을 호출하여 객체 속성 값 지정
Bicycle_num_2.price = 50000; // 클래스 속성을 호출하여 객체 속성 값 지정
System.out.println("자전거2 정보");
Bicycle_num_2.info(); // 클래스 메서드 호출 = 객체명.클래스지정메서드명();
System.out.println("자전거2 기능");
Bicycle_num_2.run(); // 클래스 메서드 호출 = 객체명.클래스지정메서드명();
Bicycle_num_2.stop(); // 클래스 메서드 호출 = 객체명.클래스지정메서드명();
}
}
○예제2) 클래스 파일 생성
package person_test;
public class Test_Class { // ← ***클래스 이름 : 일반적으로 첫글자는 대문자로 지정
public String color; // ← ***클래스 속성(멤버변수)
public int price; // ← ***클래스 속성(멤버변수)
public Test_Class(String c, int p) { //← ***생성자에 미리 객체속성으로 받을 값을 지정
this.color = c; //← 객체속성으로 받을 속성명 앞에 this. 을 붙이고 받을 값을 지정
this.price = p; //← 객체속성으로 받을 속성명 앞에 this. 을 붙이고 받을 값을 지정
}
public void run() { //← ***클래스 메서드(일반적으로 소문자로 작명) & void를 기재하여 해당 메서드를 시행하고나서 무엇인가를 반환할것이 없다라면 기재
System.out.println("---run---");
}
public void stop() { //← ***클래스 메서드(일반적으로 소문자로 작명) & void를 기재하여 해당 메서드를 시행하고나서 무엇인가를 반환할것이 없다라면 기재
System.out.println("---stop---");
}
public void info() { //← ***클래스 메서드(일반적으로 소문자로 작명)
System.out.println(" color : " + color);
System.out.println(" info : " +price);
}
}
○예제2-1) 생성된 클래스로부터 객체 생성
package person_test;
public class MainClass2 {
public static void main(String[] args) {
Test_Class test_Class_1 = new Test_Class("Yellow", 5000); //생성자 호출하는 곳에서 속성으로 받을 값을 기재
//생성자 호출시 속성을 지정했지만 추가로 지정한 속성에 대한 값을 별도 추가로 지정하면 해당 속성 값이 추가된 값으로 바뀜
test_Class_1.info();
test_Class_1.run();
test_Class_1.stop();
}
}
'Java > Java_basic' 카테고리의 다른 글
Step11. 객체와 메모리 (0) | 2023.09.22 |
---|---|
Step10. 객체 - 메서드와 접근자 (0) | 2023.09.22 |
Step8. 반복문 (0) | 2023.09.21 |
Step7. 조건문 (0) | 2023.09.21 |
Step6. 배열 (0) | 2023.09.20 |