정리

22 TIL 정리 (java 객체지향)

모_아이 2022. 5. 18. 23:45

객체지향언어

-class

클래스는 표현하고자 하는 대상의 공통 속성을 한군데에 정의해 놓은 것(객체의 속성을 정의해 놓은 것)

클래스 내부의 정보를 멤버 변수라고 한다.

-instance

어떠한 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라 한다.

※인스턴스의 멤버변수에 접근할 땐 [생성된 인스턴스.멤버변수]의 형식을 사용

예시)

class Phone {    // 클래스 phone이고 안에 model과 color와 price가 있다.
    String model;
    String color;
    int price;
}

public class Main {
    public static void main(String[] args) {
        Phone galaxy = new Phone(); //Phone의 galaxy에 Phone()를 추가
        galaxy.model = "Galaxy10"; //갤럭시 안의 model부분에 갤럭시 10 추가
        galaxy.color = "Black"; // 갤럭시 안의 color부분에 black 추가
        galaxy.price = 100; // 갤럭시 안의 price부분에 100 추가
       
        Phone iphone =new Phone();
        iphone.model = "iPhoneX";
        iphone.color = "Black";
        iphone.price = 200;
        //위와 똑같음

        System.out.println("철수는 이번에 " + galaxy.model + galaxy.color + " + 색상을 " + galaxy.price + "만원에 샀다.");
        System.out.println("영희는 이번에 " + iphone.model + iphone.color + " + 색상을 " + iphone.price + "만원에 샀다.");
    }
}

 

-method

어떠한 작업을 수행하는 코드를 하나로 묶어 놓은 것

<필요한 이유>

1. 재 사용성

메소드를 만들어 놓으면 이후 반복적으로 재사용이 가능/ 다른프로그램에서도 가능

2.중복된 코드 제거

메소드를 활용하면 중복된 부분을 없앨 수 있어 효율적인 코드가 된다.

3. 프로그램의 구조화

int[] heights = new int[5]; // 키가 들어가 있는 배열

initHeight(heights); // 1. 키에 대한 초기화
sortHeight(heights); // 2. 키를 오름차순으로 정렬
printHeight(heights); // 3. 정렬된 키를 출력

코드가 어떠한 작업을 하느냐에 따라 구분이 되어 구조화가 됨

긴 코드를 작성할 때 이러한 방식을 통해 보다 쉽게 수정 및 관리 가능

메소드를 만들 때는 메소드 안에서 동작하는 내용을 잘 표현할 수 있또록 이름을 잘 지어주면, 메소드 안을 들여다 보지 않고도 한 눈에 코드를 읽어 내려갈 수 있다.

이것을 readability가 좋다고 표현하는데 이 readability의 기본 품질을 위해 Java로 메소드를 만들 때 지켜줘야 하는 기본 약속은 다음 두 가지가 있다.

 

-메소드의 선언과 구현

반환타입 메소드이름 (타입 변수명,타입 변수명, ...){ 
    수행되어야 할 코드
}

메소드 이름 = 이름 / 수행되어야 할 코드 = 수행코드 

반환 타입 = return문

결과의 자료형을 결정하는 부분이 반환 타입 예시)

int add(int x, int y) {
    int result = x + y;
    return result;
}

※메소드의 반환 타입은 int이며 이는 반환되어지는 변수인 result와 일치하여야 한다.

반환타입 중 void는 '아무 것도 없음'을 의미.

예시)

class Calculation {
    int add(int x, int y) {
        int result = x + y;
        return result;
    }// 두 값을 더한 결과

    int subtract(int x, int y) {
        int result = x - y;
        return result;
    }// 두 값을 뺀 결과 
}

public class Main {
    public static void main(String[] args) {
        Calculation calculation = new Calculation();
        int addResult = calculation.add(100, 90);
        int subResult = calculation.subtract(90, 70);

        System.out.println("두 개를 더한 값은 " + addResult);
        System.out.println("두 개를 뺀 값은 " + subResult);
    }
}

※ add메소드와 subtract 메소드 모두 x와 y변수가 중복되어 사용된 것을 확인할 수 있다.

하지만, 메소드내의 변수는 지역변수로써 메소드 내부에서만 사용할 수 있는 변수이다. 즉, 서로 다른 메소드라면 같은 이름의 지역변수를 선언하여 사용해도 된다.

 

각자의 언어들은 아직 이해도가 부족해 차근차근 알게 된 후 정리해야겠다.

반응형

'정리' 카테고리의 다른 글

25 TIL 정리 (SQL-Read)  (0) 2022.05.24
23 TIL 정리(GCP-가상머신)  (0) 2022.05.19
21 TIL 정리 (java 기초)  (0) 2022.05.17
20 TIL 정리 (Azure,JAVA기초)  (0) 2022.05.17
19 TIL 정리 (ms클라우드 azure)  (0) 2022.05.13