스마트 인재개발원/Java

2021-04-20 자바 객체지향 클래스 (스마트인재개발원)

package oop;

public class People {
	//설계도면을 작성하는 공간
	//1.필드(속성, 데이터)
	//1-1 추상화 작업
	//-이름
	String name;
	//-나이
	int age;
	//-키
	double height;
	//-장기
	String[] organs;
	
	
	//2.기능(로직)
	//1.밥먹는다.
	public void eat() {
		System.out.println("밥을 먹는다.");	
	}
	
	//2.잔다
	public void sleep() {
		System.out.println(name + "이 잠을 잔다.");
	}

	
	//3.공부한다

	public void study() {
		System.out.println("공부를 한다.");
	}
}
​
package oop;

public class Main {

	public static void main(String[] args) {
		//객체(object)를 생성하는 공간
		//설계도(class)를 기반으로 객체를 메모리에 할당하는 공간 >>클래스의 인스턴스화

		People hyung = new People();
		//new >> 레퍼런스변수(참조형변수)를 생성할 떄 쓰는 키워드.
		//레퍼런스 변수는 주소값을 가지고있다. 
		
		System.out.println(hyung);
		//접근하는 방법은 점을 통해서 접근한다. 
		System.out.println(hyung.age);
		System.out.println(hyung.name);
		
		//이름은 정형으로
		hyung.name = "정형";
		
		//나이는 20살
		hyung.age = 20;
		
		hyung.height = 185.9;
		
		hyung.organs = 
		//필드가 채워지지 않은경우
		//기본형 데이터타입의 기본값 = 0
		//참조형 데이터타입의 기본값 = Null
		
	

	}

}
package day6;

public class ex04_OOP {

	public static void main(String[] args) {
	
		//객체 지향 프로그램
		//Class = object를 제작하기 전 설계하는 도면 레고도면
		//object = 설계도면을 기반으로 실제로 만드는것 찍어내는것 레고
		//object 1. 필드(속성), 2.메서드(행동)
		
		
		//1.추상화 - 생각으로 떠올린다(공통점을 찾는다 필드와 메서드의)
		//    	 - 상세화된 정보는 무시한다.
		// 코드상에서 구현부분만 
 		
		//2.캡슐화 - 정보의 은닉 데이터와 로직을 묶는다. 사용자가 못꺼내게 은닉한다.
		// 메서드를 통해서만 접근할 수 있다.
		// 실제 구현한 내용을 외부로부터 감추는 기법
		// 타인이 속성이나 메서드를 조작할 수 없도록 숨겨 놓는것.
		
		
		//3.상속
		//물려주다. 부모가 존재 - 자식 존재 
		//부모한테 물려받는다. 기존코드를 그대로 재사용하거나 재정의 -> 재사용 + 확장
		//이미 작성된 클래스의 튻ㅇ을 그대로 이어받아 새로운 클래스를 생성하는 기법
		//오버라이딩과 비슷한 개념
		// 
		
		//4.다형성 (캡상추다)
		// 리모컨 - 여러개 기능을 구현
		// 같은 기능을 호출했지만 객체에 따라 다르게 동작하는것을 말함
		// 상위클래스의 동작을 하위클래스에서 다시 정의하여 사용 
		
		
		
		

	}

}