[ 객체지향 특징 ]
캡슐화 = 보호 = 보안 = 콘텍600
관련된 데이터(필드)와 기능(메소드)를 하나의 묶음으로 처리
상속 = 코드 재활용 = 이미 작성된 클래스(부모)를 이어받아서 새롭게 만드는(자식) 것
자식 클래스는 부모 클래스의 모든 속성(필드)과 동작(메소드)를 사용할 수 있습니다.
필요한 기능은 자식 클래스에서 추가해 사용합니다.
추상화 = 불필요한 것을 제외하고 필요한 것을 유지
실제로 객체를 인스턴스화 할때 필요한 내용을 남기고 나머지는 제외하는 것
다형성 = 객체의 동작이 변경되는 것
파라미터나 상황에 따라 동작이 변경됩니다.
======================================================================================================
클래스 = 인스턴스를 발생시킬 수 있는 설계도 = 붕어빵 틀
인스턴스 = 결과물 = 붕어빵
자동차 설계도 -> 자동차
클래스 구성요소
1. 필드 = 변수 -> 클래스 변수 / 인스턴스 변수
2. 생성자 __나중에...
3. 메소드 = 기능(함수)
[ 객체생성 및 메소드활용 ]
package oop;
class Notebook{
String game;
boolean power;
int memory = 2048;
void rungame() {
if(power) {
System.out.println(game + "을 구동합니다.");
}
}
void power() {
if(power) {
System.out.println("종료합니다.");
} else {
System.out.println("켭니다.");
}
power = !power;
}
void addMemory(int add) {
memory += add;
System.out.println("업그레이드 되었습니다. " + memory);
}
}
public class OOP01 {
public static void main(String[] args) {
Notebook gram = new Notebook();
System.out.println(gram.memory); // 2048
// 인스턴스화 했으니 Notebook 클래스의 속성 불러올 수 있음
// 메소드 불러와서 실행시킬 수도 있음
gram.game = "LOL";
gram.power();
gram.rungame();
gram.power(); // 실행순서주의**
gram.addMemory(1024); // 파라미터 필요! 위 addMemory 메소드에서 파라미터 넣어줬기 때문
}
}
( boolean 이용해서 조건문출력 )
package oop;
class Notebook{
String game;
boolean power; // boolean의 초기값은 false ***
void power() {
if(power) {
System.out.println(power);
System.out.println("종료합니다.");
} else {
System.out.println(power);
System.out.println("켭니다.");
}
power = !power;
}
void runGame() {
if(power) {
System.out.println(game + "을 구동합니다.");
}
}
}
public class OOP01 {
public static void main(String[] args) {
Notebook gram = new Notebook();
gram.game = "LOL";
gram.power(); // boolean power = false
gram.runGame();
gram.power(); // boolean power = true
}
}
*** boolean의 초기값은 false
false
켭니다.
LOL을 구동합니다.
true
종료합니다.
[ 하나의 클래스 --> 여러개의 객체 생성 ]
하나의 클래스로부터 여러개의 인스턴스(객체)를 만들어낼 수 있음
붕어빵틀 --> 여러개의 붕어빵
자동자설계도 --> 여러개의 자동차
클래스 --> 여러개의 인스턴스 (객체보다는 인스턴스로 기억하기)
Notebook --> gram & sam ** (gram과 sam은 각각 다른 객체 , 메모리공간도 다름)
package oop;
class Notebook{
String game;
boolean power; // false
int memory = 2048;
void power() {
if(power) {
System.out.println("종료합니다.");
} else {
System.out.println("켭니다.");
}
power = !power;
}
void runGame() {
if(power) {
System.out.println(game + "을 구동합니다.");
}
}
void addMemory(int add) { //1024
memory += add;
System.out.println("업그레이드 되었습니다. " + memory);
}
}
public class OOP01 {
public static void main(String[] args) {
// 객체1 (gram)
// Notebook gram = new Notebook();
//
// gram.game = "LOL";
// gram.power();
// gram.runGame();
// gram.power();
// 객체2 (sam)
Notebook sam = new Notebook();
System.out.println(sam.memory);
sam.game = "D4";
sam.power();
sam.runGame();
sam.power();
}
}
'국비과정 > JAVA' 카테고리의 다른 글
20230616 _[11일차]_01. 메소드 오버로딩 & 생성자 (0) | 2023.06.19 |
---|---|
20230615 _[10일차]_04. Arguments & 메소드 특징 & 활용 (0) | 2023.06.18 |
20230615 _[10일차]_02. 객체 생성 연습 (인스턴스) (0) | 2023.06.17 |
20230615 _[10일차]_01. 객체타입 및 참조 (0) | 2023.06.15 |
20230614 _[9일차]_04. 로또번호추첨_(여러개의 클래스) (0) | 2023.06.15 |