/* 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);
}
}
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
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. 리턴값 있음, 전달받는 파리미터 있음
리턴타입 메소드명(파라미터타입 변수명, ...) { }
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("==================");
}
}
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
}