Class 

보통은 jdk 에서 제공되는 기본 클래스(라이브러리) 를 많이 사용한다.

class vs object (객체)
붕어빵 찍어내는 틀 vs 붕어빵
설계 vs 생성
1개 vs 여러개


기본 구조
[modifiers] class [class_identifer]{
[modifiers] data_type attribute_identifier;
[modifiers] class_identifir(...){...}
[modifiers] return_type method_identifier
([arguments]){
method_code_block
...
}
}

class_identifier : 키워드 x, 숫자 시작 x
: 특수 문자는 _, $ 두개만 가능
: 첫 글자는 보통 대문자, 명사형
: 보통 길이 제한은 없다고 말한다.

class : -data (재료) -field, 속성, 등등.. 이라고 부른다.
-method (동작)

ex) Car : 자동차 창문, 바퀴, 색, .... (설계자 마음대로라서 정답은 없음)
: 달리고, 멈추고, (동작, 행위, 일)



Class 기본 예제


ex)
Car 클래스
package com.ssafy;
public class Car {
//field, data, property, instance, variable, attribute, global variable 등등 다양한 용어가 있다.
    int num;
    String model; //전역 변수
    String owner;
    // 전역변수는 딱히 초기화를 안해줘도 괜찮다, 객체를 생성하면 default 값이 들어간다


#main() 안에 있는 변수들은 꼭 초기화를 시켜줘야 한다.
class 안에 변수를 만들면 전역 변수로 설정 되어 초기화를 시켜줄 필요가 없지만    
main()안에는 꼭 초기화를 시켜줘야한다. main 안에서는 지역 변수이기 때문에

    
    //method
    public void run() {
        int number ; //local variable 기본값이 없어서 초기화가 필요하다.
        System.out.println("run method...");
    }
    
    public void stop() {
        System.out.println("stop method...");
    }
    
    public void info() {
        System.out.println("num:"+num);
        System.out.println("model:"+model);
        System.out.println("owner:"+owner);
    }
}

CarUser 클래스 (main 메소드가 있어서 실행이 가능)

package com.ssafy;
public class CarUser {

    public static void main(String[] args) {
        //Car 객체 생성
        Car c1=new Car(); //객체를 생성해야 그 클래스의 필드값, 메소드를 사용할 수 있다.
        c1.model="BMW";
        c1.num=1234;
        c1.owner="tom";

        //*객체 생성을 하면 field는 기본값을 가지고 있음.* -> 참조형 변수는 생성될때 기본 값이 주어지기 때문에
        c2.info();
        System.out.println();
//num:0 기본값
//model:null 기본값
//owner:null 기본값


        c1.run();
        c1.stop();
        c1.info();
    }

}




'JAVA > JAVA 기본 문법' 카테고리의 다른 글

[JAVA]-Java #Method Overloading  (0) 2019.01.19
[JAVA]-Java 클래스 생성자  (0) 2019.01.19
[JAVA]-Java 다차원 Array  (0) 2019.01.19
[JAVA]-Java Operation(메소드)  (0) 2019.01.19
[JAVA]-Java 1차원 배열  (0) 2019.01.19

+ Recent posts