날아라김지원
article thumbnail

- 클래스(class)

클래스를 보통 설명할때 찍어낸다고 많이 표현한다. 

class FishBread {
}

public class Sample {
    public static void main(String[] args) {
    }
}

이러한 클래스의 가장 중요한 기능은 객체(object)를 만드는 기능이다.

class FishBread {
}

public class Sample {
    public static void main(String[] args) {
        FishBread fish1 = new FishBread();
    }
}

new 는 객체 생성키워드이고, FishBread클래스의 인스턴스 (instance) fish1을 만들 수 있다.

 

fish1은 FishBread의 객체이다. 객체와 인스턴스는 용어의 차이라고 보면된다.

 

fish1이라는 객체, fish1은 FishBread의 인스턴스이다.

 

- 객체 변수

class Animal {
    String name;

    public void setName(String name) {
        this.name = name;
    }
}

public class Sample {
    public static void main(String[] args) {
        Animal cat = new Animal();
        cat.setName("boby");  // 메서드 사용
        System.out.println(cat.name);
    }
}

위 코드와 같이 Animal 클래스에 선언된 name을 객체 변수라고 한다.

 

그리고 setName이란 메소드에서 this키워드를 통해 접근할 수 있다. this.name은 String name;을 가르킨다.

 

Animal cat = new Animal(); 로 새로운 객체를 만들고 그뒤 cat.setName() 을 통해 객체 변수에 접근 가능하다.

 

그리고 새롭게 Animal 클래스를 통해 새로운 객체를 만들어도 각각 독립적으로 객체 변수가 유지된다.

 

즉 class Animal{} 은 새로운 객체를 만들어 내는 공장, 도장, 틀 이라고 보면 된다.

 

- 메서드(method)

자바는 클래스 기반의 구조를 가지고 있다. 자바에서는 함수는 따로 존재하지않고 같은 클래스 안에

 

함수의 역할을 하는 메서드가 존재한다. 즉 클래스 내의 함수가 메서드이다.

 

예제가 아주좋아 이대로 이해하면 좋을거 같다. 

 

믹서기 = 메서드, 과일쥬스 = 리턴값, 넣는과일 = 입력값으로 보면 될것이다.

public class Sample {
    int sum(int a, int b) {  // a, b 는 매개변수
        return a+b;
    }

    public static void main(String[] args) {
        Sample sample = new Sample();
        int c = sample.sum(3, 4);  // 3, 4는 인수

        System.out.println(c);
    }
}

여기서 sum()이 메소드이다.

 

그리고 리턴값이 없는 메소드는 void를 사용해 만든다. 

 

void sum(int a, int b) {
    System.out.println(a+"과 "+b+"의 합은 "+(a+b)+"입니다.");
}

 

그리고 메소드 내의 변수는 메소드 내에서만 작동한다. 그래서 return값을 사용하거나 객체 변수를 사용해야 연산

 

결과가 저장된다.

public class Sample {
    void varTest(int a) {
        a++;
    }

    public static void main(String[] args) {
        int a = 1;
        Sample sample = new Sample();
        sample.varTest(a);
        System.out.println(a);
    }
}

 

또한 객체변수는 메소드에서 this키워드로 접근가능하다.

public class Sample {

    int a;  // 객체변수 a

    void varTest() {
        this.a++;
    }

    public static void main(String[] args) {
        Sample sample = new Sample();
        sample.a = 1;
        sample.varTest();
        System.out.println(sample.a);
    }
}

 

 

- 참고

점프투자바

https://wikidocs.net/225#_1

 

profile

날아라김지원

@flykimjiwon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!