본문 바로가기
카테고리 없음

11.3 클래스, 객체, 메서드

by 티코딩 2022. 11. 4.

굿모닝 세션에서 블로그 쓰는 방법과 중요성에대해 들었다.

배운걸 정리해보자면 이렇다.

 

블로그에 작성해야 할 것은 두가지

today i learned

error handling log

 

가져야할 마음가짐은 이렇다.

일단 쓰자,

겁먹지 말자,

학생때는 틀려도 된다,

나중에 틀리면 더 문제다.

여기다 내가 느낀걸 추가하자면 항목별로 적고 내용은 내가 기억한대로 적어보자 이다.

이전까진 너무 배운걸 그대로 가져다 쓰는 느낌이었다. 그러면 제대로 된 메타인지가 되지 않는다는 것을 느꼈다.

일단 생각나는대로 써보고 나중에 수정하는방향으로 가봐야 겠다.

- - - - - - - -- - - - - - -- - - - -- - 

ㅇ 객체

객체는 존재하는 모든것이다.

자바에서는 속성과 기능으로 나뉜다. 속성은 필드, 기능은 메서드. 

 

ㅇ 클래스

클래스는 객체를 정의하는 틀. 쉽게 설명해 집을 지을때 설계도가 클래스고 객체는 실제 설계도를 따라 지은 집이라고 

생각하면 편하다.

 

ㅇ 인스턴스

클래스를 통해 만든 객체. 만드는 과정은 인스턴스화 한다 라고 말한다. 

 

ㅇ 클래스 정의

클래스를 정의하는 방법은 간단하다.

class 클래스명{

//필드
}

이렇게 기억하고있는데 오늘 배운 자료를 보니 네가지로 구성된다고 한다.

public class ExampleClass{

   int x = 10;   // 필드: 클래스의 속성

   void printX(){ . . . }    //메서드: 클래스의 기능

   ExampleClass{ . . . }   //생성자: 객체 생성

   class ExampleClass2{ . . . }   //이너 클래스: 클래스 내부의 클래스

}

 

ㅇ 객체 생성

객체를 생성하는 방법은 간단하다.

new 를 써준다,

ExampleClass ex = new ExampleClass();

이렇게 생성해주면 이 클래스의 메서드를 사용할 땐

ex.printX(); 

이렇게 포인터 연산자를 사용해 쉽게 사용할 수 있다.

 

ㅇ 필드 **

필드는 클래스의 속성. 다시 말해 클래스에 포함된 변수를 의미한다.

오늘 배운부분중 가장 헷갈리는 부분이었다. 

class Example{
    int instanceVariable;	//인스턴스 변수(필드)
    static int classVariable;	//클래스 변수(필드)
    
    void method(){
        int localVariable = 0;	//지역 변수(메서드 내에서만 유효)
    }
}

인스턴스,클래스 변수는 힙영역에 저장되어 강제로 초기화돼서 초기화를 꼭 시키지 않아도 되며,

지역변수는 스택 메모리에 저장되어 꼭 초기화를 해줘야 한다.

 

ㅇ static

static이 붙으면 정적 멤버라고 한다. 정적 멤버는 인스턴스 생성 없이 바로 사용 가능하다. 정적 메서드의 경우 인스턴스 변수, 인스턴스 메서드는 사용 불가능하다.

 

ㅇ 메서드

특정 작업을 수행하는 일련의 집합이다.

public static int add(int x, int y){	//public접근제어자,메서드명은 add int결과값 반환, xy는파라미터
    int result = x + y;	
    return result;

 

ㅇ 메서드의 호출

메서드도 클래스의 멤버이기 떄문에 인스턴스를 생성해야 한다. 인스턴스를 생성한 뒤 포인터 연산자로 마찬가지로 호출 가능하다.
하지만, 클래스 내부에 있는 메서드끼리는 따로 객체 생성 없이 호출 가능

 

ㅇ 메서드 오버로딩

한 클래스 안에 같은 이름의 메서드를 여러개 정의한다.

하지만 매개변수의 개수 혹은 타입이 달라야한다.!!!