Day5-2

DeokHun KIM·2022년 7월 5일
0

java

목록 보기
9/30
  • 클래스와 인터페이스는 앞글자를 대문자로 한다(약속)

06_Object_class

Ex01_package_import_class

/* package 선언문 : java 파일의 맨 첫줄에 위치하며 한 번만 작성
 * 자바(class) 파일의 위치를 나타냄
 * 일반적으로 회사의 도메인명을 반대로 사용해서 시작
 * 작성예) com.naver.project, com.itwill.mystudy
 */
package edu.class1.basic;

// import 선언문 : 선택항목이지만 일반적으로 사용
// (java.lang 패키지 이외의 패키지에 있는 타입 사용시 사용)
import java.util.Scanner;
//import java.lang.*; //대표문자(wild card) * 사용 가능

// class 선언문 : 필수항목
public class Ex01_package_import_class {

	public static void main(String[] args) {
		//java.util.Scanner scan = new java.util.Scanner(System.in); 
		//위의 import문이 없다면 앞에 저렇게 붙여 써줘야 한다
		Scanner scan = new Scanner(System.in);
		System.out.print(">> 인사말 : ");
		String hello = scan.nextLine();
		System.out.println("인사말출력: " + hello);
	
	}

}

Ex02_class

package edu.class1.basic;

public class Ex02_class {
	// ======== 변수 선언 영역 =========
	//필드변수(인스턴스변수, 멤버변수, 전역변수, 속성-property) 선언 
	int num = 111;
	
	//클래스변수, 스테틱(static), 인스턴스(객체) 공통변수
	static int staticNum = 222;	
	
	
	//======= 생성자 선언 영역 =======
	Ex02_class() {} //기본 생성자(default constructor) 생략가능
		
		
	
	//======= 메소드(method, 기능, 동작) 선언 영역 =======
	//main 메소드
	public static void main(String[] args) {
		//로컬변수(지역변수)
		int num1 = 300;
		int num2 = 100;
		System.out.println("num1: " + num1 + ", num2: " + num2);
		
		int result = num1 + num2;
		System.out.println("result : " + result);
		
		//메소드 호출, 실행(전달하는 데이터(값) : 인수-argument)
		result = add(num1, num2); //메소드 호출(부), 실행
		System.out.println("add(num1, num2) 결과 : " + result);
		
		result = subtract(num1, num2);
		System.out.println("subtract(num1, num2) 결과 : " + subtract(num1, num2));
	}
	
	//add 라는 메소드 선언(전달 받는 데이터(값) : 파라미터-parameter)
	public static int add(int a, int b) {
		return a + b;
	}
	
	public static int subtract(int a, int b) {
		return a- b;
	}

}

num1: 300, num2: 100
result : 400
add(num1, num2) 결과 : 400
subtract(num1, num2) 결과 : 200

Ex03_method

public class Ex03_method {
	
	public static void main(String[] args) {
		int num1 = 200;
		int num2 = 100;
		
		// 참조형(데이터)타입 변수명 = new
		Ex03_method ex03 = new Ex03_method(); //객체를 생성해야 쓸 수 있다
		ex03.dispTitle();
		int sum = ex03.add(num1, num2);
		System.out.println("sum : " + sum);
		
		System.out.println("add(num1, num2) : " + ex03.add(num1, num2));
		System.out.println("subtract(num1, num2) : " + ex03.subtract(num1, num2));
		ex03.multiply2(num1, num2);
		
	}
	
	int add(int a, int b) {
		return a + b; //return 문 : 호출한 곳으로 되돌아 감 
	}
	
	int subtract(int a, int b) {
		return a - b;
	}
	
	int muliply(int a, int b) {
		return a * b;
	}
	
	int divide(int a, int b) {
		return a / b;
	}
	
	//-------------------
	void multiply2(int a, int b) {
		System.out.println(a + " * " + b + " : " + (a * b));
	}
	
	void dispTitle() {
		System.out.println("==== 메소드 알아보기 ====");
		System.out.println(">>> 4가지 형태 확인하기");
	}
	
}

======== 메소드(method) 4가지 형태 =======
1. 리턴값 없음, 전달받는 파리미터 없음
void 메소드명() { }
2. 리턴값 없음, 전달받는 파리미터 있음
void 메소드명(파라미터타입 변수명, ...) { }
3. 리턴값 있음, 전달받는 파리미터 없음
리턴타입 메소드명() { }
4. 리턴값 있음, 전달받는 파리미터 있음
리턴타입 메소드명(파라미터타입 변수명, ...) { }


edu.class2.car - Car

package edu.class2.car;
/* 자동차 클래스
   속성 : 차량명, 모델명, 차량색상
   기능 : 가고, 서고, 뒤로가고, 차량정보확인
 */
public class Car {
	//필드변수(속성) --------------------------
	String name = "마이카"; //차량명
	String model; //모델명
	String color; //차량색
	
	//ctrl + shift + x : 대문자로 바꿔준다, ctrl + shift + y : 소문자로 바꿔준다
	//final 제한자 : 변수에 값이 할당되면 더이상 변경할 수 없음
	//final 붙은 변수 : 상수화된 변수(상수)
	final int CAR_LENGTH = 350; //차량길이 
	final int CAR_WIDTH = 200; //차량폭(너비)
	
	//생성자 ---------------------------------
    //생성자 : 리턴 타입 없음
    //클래스명() {} - 기본생성자(default constructor)
	//클래스명(매개변수, ...) {} 
	//주의 : 명시적으로 생성자 선언시 기본생성자 만들어 주지 않음
    public Car() {
		model = "드림카";
		color = "무지개색";
	}
    
	Car (String n, String m, String c) {
		name = n;
		model = m;
		color = c;
	}
	

	//메소드 ---------------------------------
	void run() {
		System.out.println(">> 앞으로 이동");
	}
	
	void stop() {
		System.out.println(">> 멈춤");
	}
	
	void back() {
		System.out.println(">> 뒤로가기");
	}
    
    void dispData() {
		System.out.println("=== 자동차 정보 ===");
		System.out.println("자동차이름 : " + name);
		System.out.println("모델명 : " + model);  
		System.out.println("색상 : " + color);  
		System.out.println("차량길이 : " + CAR_LENGTH);  
		System.out.println("차량폭 : " + CAR_WIDTH);  
		System.out.println("==================");
	}	
}

edu.class2.car - CarMain

package edu.class2.car;

public class CarMain {

	public static void main(String[] args) {
		// Car 클래스를 이용해서 객체(인스턴스) 생성
		Car car = new Car();
		System.out.println("car : " + car);
		System.out.println("자동차이름 : " + car.name);
		System.out.println("모델명 : " + car.model);  
		System.out.println("색상 : " + car.color);  
		System.out.println("차량길이 : " + car.CAR_LENGTH);  
		System.out.println("차량폭 : " + car.CAR_WIDTH);  
		System.out.println("---------");
		
		car.name = "처음 가져본 차";
		System.out.println("자동차이름 : " + car.name);
		//car.CAR_LENGTH = 400;  //final(상수처리)된 변수 값은 수정 불가
		
		System.out.println("==== 기능 테스트 ====");
		car.run();
		car.stop();
		car.back();
		
		System.out.println("===== car2 만들고 사용 =====");
		Car car2 = new Car("패밀리카", "그랜저", "검정");
		car2.dispData();
		
		car.dispData();
		
		car2.run();
		car2.stop();
		car2.back();

		System.out.println("car2 : " + car2);
		
		
	} //main end

}

0개의 댓글