클래스의 메서드

Mia Lee·2021년 11월 18일
0

JAVA

목록 보기
45/98
package ex_class;

public class Ex3 {

	public static void main(String[] args) {

		/*
		 * 클래스의 메서드
		 * 
		 * < 메서드 정의 기본 문법 >
		 * [접근제어자] 리턴타입 메서드명([매개변수목록]) {
		 * 
		 * 		// 구현부
		 * 
		 * }
		 * 
		 * 접근제어자 : 해당 메서드에 접근할 수 있는 범위
		 * 리턴타입 : 메서드가 모든 작업을 마치고 반환하는 데이터의 타입(반환 값이 없을 경우 void)
		 * 메서드명 : 메서드를 호출하기 위한 이름
		 * 매개변수목록 : 메서드 호출 시 전달되는 인수의 값을 저장할 변수들(변수 선언!)
		 * 구현부 : 메서드의 고유 기능을 수행하는 명령문의 집합
		 * 
		 */
		
		// Animal 클래스의 인스턴스(a1) 생성 및 데이터 저장 후 출력
		// ex) 이름 : 멍멍이, 나이 : 2
		Animal a1 = new Animal();
		// Animal 인스턴스 a1의 인스턴스 변수 초기화
		a1.name = "멍멍이";
		a1.age = 2;
		// Animal 인스턴스 a1의 인스턴스 변수 값 출력
		System.out.println("이름 : " + a1.name + ", 나이 : " + a1.age);
		
		// Animal 인스턴스 a1의 print() 메서드 호출
		a1.print();
		
		// Animal 클래스의 인스턴스(a2) 생성
		// ex) 이름 : 야옹이, 나이 : 3
		// 생성된 인스턴스의 print() 메서드 호출
		Animal a2 = new Animal();
		a2.name = "야옹이";
		a2.age = 3;
		a2.print();
		
	}

} // Ex3 클래스 끝

// 동물(Animal) 클래스 정의
// 멤버변수 : 이름(name, 문자열), 나이(age, 정수)
class Animal {
	
	// 멤버변수 선언
	String name;
	int age;
	
	// "동물 울음 소리!" 출력하는 메서드 cry() 정의
	// => 매개변수도 없고, 리턴값도 없는 메서드
	public void cry() {
		System.out.println("동물 울음 소리!");
		
	}
	
	// print() 메서드 정의 => 매개변수도 없고, 리턴값도 없는 메서드
	// 인스턴스변수 name과 age의 데이터를 출력
	// 이름 : XXX, 나이 : XXX
	public void print() {
		// 클래스 내의 메서드에서 멤버변수(인스턴스 변수)에 자유롭게 접근 가능
		// => 단순히 변수명만으로 접근
		System.out.println("이름 : " + name + ", 나이 : " + age);
		
	}
	
}













package ex_class;

public class Test3 {

	public static void main(String[] args) {
		
		Car c = new Car();
		
		c.carName = "SONATA";
		c.companyName = "Hyundai";
		c.cc = 2000;
		
		System.out.println("차종 : " + c.carName);
		System.out.println("제조사 : " + c.companyName);
		System.out.println("배기량 : " + c.cc + "cc");
		System.out.println("현재속력 : " + c.speed + "km/h, 최대속력 : " + c.maxSpeed + "km/h");
		
		System.out.println("==========================");
		
		c.speedUp(50); // 0 -> 50 km/h 변경
		c.speedUp(100); // 50 -> 150 km/h 변경
		c.speedUp(100); // 150 -> 250 km/h 변경
		// 단, 최대속력이 200이므로 250 -> 200으로 변경 후
		// "최대 속력 도달!", 현재 속력이 출력
		
		System.out.println("==========================");
		
		c.speedDown(50); // 200 -> 150 km/h 변경
		c.speedDown(250); // 150 -> -100 km/h 변경
		// 현재속력이 -100 이므로 -100 -> 0으로 변경 후
		// "차량 정지!"과 현재 속력 출력

	}

} // Test3 클래스 끝

/*
 * 자동차(Car) 클래스 정의
 * 멤버변수 선언
 * - 자동차 차종(carName, 문자열)
 * - 자동차 브랜드(companyName, 문자열)
 * - 자동차 배기량(cc, 정수)
 * - 최대속력(maxSpeed, 정수 => 200으로 미리 설정)
 * - 현재속력(speed, 정수)
 * 
 * 메서드 정의
 * 1) 속력 증가 speedUp()
 *    - 증가시킬 속력(s)을 전달받아 현재속력(speed)에 누적 후
 *      "현재속력 : XXX km/h" 출력
 *      단, 현재속력이 최대속력(maxSpeed)보다 클 경우
 *      현재속력을 최대속력으로 변경 후 "최대 속력 도달!" 출력
 *    - 매개변수 1개(증가시킬 속력 s), 리턴값 없음
 * 2) 속력 감소 speedDown()
 *    - 감소시킬 속력(s)을 전달받아 현재속력(speed)에서 차감한 후
 *      "현재 속력 : XXX km/h" 출력
 *      단, 현재속력이 0 보다 작을 경우 현재 속력을 0으로 변경 후
 *      "차량 정지!" 출력
 *    - 매개변수 1개(감소시킬 속력 s), 리턴값 없음
 * 
 */
class Car {
	
	// 멤버변수 선언
	String carName;
	String companyName;
	int cc;
	int maxSpeed = 200; // 최대속력
	int speed; // 현재속력
	
	// 메서드 정의
	// 1) 속력증가 speedUp()
	public void speedUp(int s) {
		// 전달받은 속력(s)을 현재속력(speed)에 누적
		speed += s;
		
		// 현재속력(speed)이 최대속력(maxSpeed)보다 클 경우
		if (speed >= maxSpeed) {
			speed = maxSpeed;
			System.out.println("최대 속력 도달!");
			
		}
		
		System.out.println("현재속력 : " + speed + " km/h");
		
	}
	
	// 2) 속력감소 speedDown()
	public void speedDown(int s) {
		// 전달받은 속력(s)을 현재속력(speed)에서 차감
		speed -= s;
		
		// 현재속력(speed)이 0보다 작을 경우
		if (speed < 0) {
			speed = 0;
			System.out.println("차량 정지!");
			
		}
		
		System.out.println("현재속력 : " + speed + " km/h");
	}
	
	
}















0개의 댓글