[JAVA] 안되겠다..클래스 개념부터 잡자

0xDave·2022년 7월 11일
0

Java

목록 보기
2/4
post-thumbnail

자바의 기본적인 문법만 알고나서 바로 Spring 강의를 들었다. 머리가 아팠다. 비전공자로서 아직 개념조차 제대로 잡혀있지 않다는 것을 깨달았다. 마음은 조급하지만 하나씩 제대로 익혀나가야 나중에 더 힘들어지지 않을 것을 잘 알기에 지금부터라도 제대로 학습하고자 한다. 유튜브에 자바 클래스를 검색하니 예전에 자주 들었던 생활코딩 강의가 있었다. 본 내용은 이 강의를 기초로 작성되었다.

🤷‍♂️ 클래스가 정확히 뭘까


클래스는 비유를 들자면 디렉토리(폴더) 와 같다. 폴더 없이 파일만 존재한다면 파일을 정리하기 쉽지 않을 것이다. 폴더를 만들어서 그 안에 파일을 넣으면 나중에 찾을 때도 편하고 관리하기도 용이하다.

즉, 클래스는 서로 연관된 변수와 메소드를 그룹지어주는 껍데기다. 클래스라는 이름이 너무 거창하게 들려서 괜히 겁 먹을 필요 없다. 그냥 껍데기일 뿐이다.

class Print{
    public static String delimiter = "";
    
    public static void A() {
        System.out.println(delimiter);
        System.out.println("A");
    }
    public static void B() {
        System.out.println("B");
    }
}

public class MyOOP {
    public static void main(String[] args) {
     	Print.delimiter = "----";
        Print.A();
        Print.B();
    }
}

예제를 보면 클래스가 총 2개 나온다. 첫번째 클래스인 Print 안에는 3가지 구성 요소가 있다.

  1. 변수 delimiter
  2. 메소드 A()
  3. 메소드 B()

두번째 클래스인 MyOOP에는 main 함수가 있는데 여기서 Print 클래스의 변수와 메소드를 사용하고 있다. 즉, 무엇인가를 프린트해준다는 공통점을 가진 메소드와 관련 변수를 그룹지어서 Print 라는 클래스를 만들었고, 만든 클래스를 이용해 다른 클래스에서 활용할 수 있도록 한 것이다.


💆‍♂️ 인스턴스는요..??


인스턴스는 클래스를 통해 똑같이 만들어 낸 복제품 이다. 많이들 드는 예가 클래스 = 붕어빵 틀 이고 인스턴스 = 붕어빵 예시다. 코드를 보면 조금 더 이해가 쉬울 것이다.

먼저 인스턴스 만드는 방법부터 설명하자면, 클래스 앞에 new 를 붙여서 변수에 담아주고 맨 앞에 클래스 명과 똑같이 타입을 지정해주면 된다. 생각보다 간단하다.

Print p = new Print(); //p는 변수명, 그 앞의 Print는 타입을 나타낸다.

이제 본격적으로 인스턴스 예시를 살펴보자.

인스턴스 사용 전


메인 함수 안에서 Print 클래스를 이용해 메소드를 불러오는 모습이다. 클래스를 밖으로 뺐지만 중복된 코드가 많아 보기 좋지 않다.

인스턴스 사용 후


오른쪽 아래는 인스턴스를 사용하기 전의 모습을 나타낸 것이므로 무시해도 좋다. p1p2 인스턴스를 만들고 나니 코드가 좀 더 간결해진 것을 볼 수 있다. 하나의 클래스에서 여러 개의 인스턴스를 만들 수 있다는 것이 강점이다. 추가적으로 달라진 점은 Print 클래스 내에서 static 이 제거됐다는 것. static은 다음 글에서 자세히 다뤄볼 예정이다.

profile
Just BUIDL :)

0개의 댓글