ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] Class / Constructor / 객체지향프로그래밍
    Java 2024. 6. 15. 21:31

    -  ★class가 뭐냐면?

    변수와 함수 보관하는 통

    class Test {
      String name = "kim";
      void hello(){ System.out.println("안녕");  }
    }

     

     

     

    - ★ class에 있던 변수, 함수 쓰려면?

    new 키워드 써서 복사부터 하기!

    var test = new Test();

    new 클래스() 라고 쓰면 클래스에 있던 변수랑 함수 복사해주세요~ 라는 뜻

    그러면 진짜로 클래스에 있던 변수랑 함수를 복사해온 이상한 자료가 그 자리에 남음

    (=> 변수랑 함수 복사본 담고있는 자료를  object라고 부름)

     

     

     

     

    - object 안에 저장된 변수랑 함수를 가져다쓰고 싶으면?

    점찍어서 변수나 함수 꺼내서 쓰면 됌

    var test = new Test();
    System.out.println(test.name);

     그래서 .name 붙이면 이 자리에 아까 Test 클래스에 보관해놨던 kim이라는 변수가 남는 것

    test.hello() 처럼 그 안에 있던 함수도 사용가능 

     

     

     

     

    - 클래스를 복사해올 때 타입을 정확히 넣고 싶으면?

    Test test = new Test();

    클래스를 복사해올 때 타입을 정확히 넣고 싶으면 뭘넣어야하냐면

    타입자리에 클래스명 넣으면 된다

    클래스도 일종의 자료형 역할을 할 수 있어서 그런 것

     

     

     

    - 왜 class 씀?

    1. 자바를 선택한 이상 자바에선 항상 코딩을 클래스부터 써놓고 시작하기 때문에 어쩔 수 없이 강제로 써야함
    2. 관련있는 변수, 함수를 한 곳에 보관할 수 있으니까 코드 정리해두기 좋음
    3. 중요한 변수, 함수 원본을 안전하게 보관할 수 있음

    (중요한 서류 수정할 때 원본을 직접 수정합니까

    원본을 직접 수정하고 그러면 좀 위험할 수 있어서 보통은 복사한 다음에 그걸 가져다가 쓰는게 안전!

    class도 마찬가지로 변수, 함수 원본을 보관해두고  이걸 new 키워드로 복사해서 쓰면 원본 데이터를 안전하게 그대로 지킬 수 있으니까 그래서 쓰는 것)

     

     

     

    -클래스 안에 있는 변수?

      field / attribute

    - 클래스 안에 있는 함수?

       method

     

     

     

     

    - constructor 문법

    클래스에서 쓸 수 있는 constructor와 파라미터문법을 쓰면

    object 뽑을 때 마다 매번 다른 변수값을 가지도록 클래스를 만들기 가능

    @SpringBootApplication
    public class ShopApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(ShopApplication.class, args);
    
    		var test = new Friend( "park");
    		System.out.println(test.name);
    	}
    
    }
    
    class Friend {
    	String name = "kim";
    	int age = 20;
    	// 아래가 constructor
    	Friend(String a){  // new Friend()할 때 자동실행됨
    		this.name = a; // this는 새로 생성될 object를 뜻함
    	}
    }
     

     object 뽑을 때마다 각각 다른 변수값을 부여하고 싶으면 constructor를 만들면 된다

    클래스이름( ){ } 으로 함수만들면 그게 constructor임!

    그 안에 있는 코드는 object 뽑을 때 자동실행되므로 this 같은거 써서 변수의 초깃값을 맘대로 설정가능

    심지어 함수 파라미터 문법도 사용가능

     

     

    - class랑 object로 코드짜는 걸 객체지향 프로그래밍이라고 함 

    (객체지향 문법은 길고 복잡한 코드 정리도구, 관리도구)

Designed by Tistory.