(18) 이런

(21/03/23 ~ 22/03/23)


(UPP)

# 물체 정위 프로그램 작성 (객체 지향 프로그래밍)

– 변수 및 함수를 세상에 실제로 존재하는 개념(객체)으로 묶어서 사용하는 프로그래밍 방법론.

– 변수 및 함수를 무분별하게 사용하면 다양한 문제가 발생합니다. 실제로 존재하다

객체에 구속됨 표현하기 시작했다

– 변수는 개체의 현재 상태를 표시합니다.

– 물체 그 안에 있는 함수는 개체의 상태(변수)를 변경합니다.

그만큼 메소드라 불러라 (바꾸지 않아도 변수 쓰면 메소드)

예) 책

– 책에서 현재 상태(변수)

: 오늘 스프레드 페이지, 총 페이지, 출시 날짜, 각 페이지의 기념일 로고,

모든 페이지가 쓰여진 곳의 좌표, 가격 및 할인율.

– 책에서 기능(방법)

: 다음 페이지 넘기기, 여러 페이지 넘기기, 한 페이지 넘기기, 지우개…

# 수업 (수업)

– 물체 지향 프로그래밍에서 객체를 프로그래밍 언어로 표현하기 위한 문법

– 클래스 이 객체의 초안 역할을하다

– 수업 정의 당시에는 엔티티가 없습니다.

– 수업 생성하는 실제 개체를 인스턴스라고 합니다.

– 수업 를 통해 인스턴스를 만들 때 new를 사용합니다.

– 모든 똑같은 것 사용 그때에 사용 위치

public static void main(String() args) {

		// Apple이라는 설계도로 실체(인스턴스)를 2개 만들었다
		Apple a1 = new Apple();
		Apple a2 = new Apple();
		Random ran = new Random();
		
		Apple() apples = new Apple(100);
		
		// 인스턴스에 .을 찍고 해당 클래스의 변수와 메서드를 사용할 수 있다
		a1.price = 800;
		a2.price = 1000;
		
		// 메서드는 모두 똑같은 동작을 하지만 각 인스턴스의 상태값에 따라 결과가 달라진다
		System.out.println(a1.toDollar()); // >> 0.664
		System.out.println(a2.toDollar()); // >> 0.83
	}
}

// Apple 객체의 설계도 (class) - 실체 X
class Apple {
	int price;
	int taste;
	// 현재 사과 가격을 달러로 변환하여 반환해주는 메서드
	double toDollar() {
		return price * 0.00083;
	}	
}

예) 책장 넘기기

import java.util.Random;

public class C03_OOP {

	public static void main(String() args) {

		Book b1 = new Book();
		
		b1.next();
		b1.next();
		b1.next();
		b1.next();		
		System.out.println("현재 보고 있는 페이지는" + b1.currPage + "page입니다.");
		
		b1.prev();
		b1.prev();
		System.out.println("현재 보고 있는 페이지는" + b1.currPage + "page입니다.");
	}
}

class Book {
	// 인스턴스 변수 정의
	int currPage;

	// 메소드 정의
	void next() {
		++currPage;
	}
	
	void prev() {
		--currPage;
	}
}

>>

보고 계신 페이지는 4페이지입니다.

보고 계신 페이지는 2페이지입니다.

# 공공의~에서 기능

– 일반적으로 수업은 모든 다른 패키지에서 만들다 심지어 사용 하다.

– 다른 패키지에서 다른 패키지의 항목을 사용하려면 전에 공공의첨부해야합니다

(myobj 패키지) – 다른 패키지에서 클래스 생성

package myobj;

public class Cart {	
	
	String name;
	public int acc;
	public int speed;
	public int max_speed;
	public int weight;
	public int break_power;
	
	public void plusSpeed() {
		speed += acc;
	}
	
	public void minusSpeed() {
		speed -= acc;
	}		
}

(표준 패키지) – 메인 프로그램에서 사용하는 경우

import myobj.Cart;

public class C03_OOP {
	public static void main(String() args) {
		Cart cart1 = new Cart();
		Cart cart2 = new Cart();
		
		cart1.speed = 50;
		cart1.acc = 10;
		
		cart2.speed = 100;
		cart2.acc = 20;
		
		cart1.plusSpeed();
		cart1.plusSpeed();
		cart1.plusSpeed();
		cart1.minusSpeed();
		
		cart2.plusSpeed();
		cart2.plusSpeed();

		System.out.println(cart1.speed);
		System.out.println(cart2.speed);
	}
}

– 다른 패키지에서 함수를 사용하는 방법 수입필요.

수입 myobj. 쇼핑 카트;

-수입붓다 아닌 것 패키지.두번째 전에 삽입 하다

myobj. 쇼핑 카트 장바구니1 = 새로운 myobj. 쇼핑 카트();

-Myobj패키지 센터 자동차 클래스 공공의두번째 첨부된 변수와 방법 사용 가능한


– public으로 표시되지 않은 이름 인스턴스 변수는 다른 클래스의 메인 파일에서 사용할 수 없습니다.


# 변하기 쉬운

int 가격, int 맛 > 인스턴스 변수

double toDollar > 메소드

class Apple {
	// 클래스의 인스턴스 변수 (인스턴스마다 값이 다름)
	// = 멤버 변수, 속성, 필드 ... 등등
	int price;
	int taste;
	
	// 클래스의 인스턴스 메서드 (가지고 있는 인스턴스 변수에 따라 결과가 다름)
	double toDollar() {
		return price * 0.00083;
	}	
}

더보기

– 공부에 참고한 블로그

: https://coding-factory.864