java

Java/Def of Class/클래스정의

MyaZ 2020. 1. 28. 17:44

프로그래밍 = 변수 + 연산자 + 제어문
프로그래밍의 규모가 커짐 → 절차지향 프로그래밍의 필요성

동작위주의 메서드 독립단위의 모듈


Class = 변수(명사/상태/특성) + 메서드(동사/기능/행동)
ex)

클래스 몽실

몽실이의 생김새, 특성=변수

몽실이의 동작=메서드

public class Puppy {
	
	// 인스턴스 변수
	public String name;
	public String leftEye = "왼쪽 눈";
	public String rightEye = "오른쪽 눈";
	public String mouth = "입";
	public String nose = "코";
	public String tail = "꼬리";
	public String[] legs = new String[4];
	
	// 인스턴스 메서드
	public void pretty() {
		System.out.println(name+"가 " + tail + "을 흔든다");
	}
	public void eat() {
		System.out.println(name+"가 " + nose + "을 킁킁 거린다");
		System.out.println(name+"가 " + mouth + "을 벌려서 먹는다");
	}
	public void sleep() {
		System.out.println(name+"가 " + leftEye + "을 감는다");
		System.out.println(name+"가 " + rightEye + "을 감는다");
	}
	
	
	
	
    // main의 역할은 "프로그램의 시작"
	// 다만 Puppy객체가 만들어져 있지 않아도 무조건 메모리에 로딩되어야 하므로
	// main에 static 키워드를 붙여서 시스템이 실행되면 무조건 메모리로 
       main메서드를 올리게 된다.
	
	// static이 아닌 일반 메서드는 해당 객체가 생성될 때
	// 메모리에 로딩되게 된다.
    
    
	public static void main(String[] args) {
		Puppy mongsil = new Puppy();
		mongsil.name = "몽실이";
		
		Puppy baekgu = new Puppy();
		baekgu.name = "백구";
		
		mongsil.pretty();
		baekgu.pretty();
	}
}