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

나만의 자바공부(2)

by 소년수 2022. 7. 21.

자바 객체부분

Java는 객체지향언어로써 코드간에 관계를 맺어 줌으로써 보다 유기적인 프로그램을 구성할 수 있다.

클래스(class)란?
클래스(class)는 표현하고자 하는 대상의 공통 속성을 한 군데에 정의해 놓은 것이라고 할 수 있다. 즉, 클래스는 객체의 속성을 정의해 놓은 것.

인스턴스(Instance)란?
어떠한 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다

 

class Phone {
    String model;
    String color;
    int price;
}

public class Main {
    public static void main(String[] args) {
        Phone galaxy = new Phone(); 
        galaxy.model = "Galaxy10";
        galaxy.color = "Black";
        galaxy.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 + "만원에 샀다.");
    }
}

위 코드를 보면 class값은 Phone, 인스턴스값은 model,color,price이다.
크게 틀을 짜준것이 class, 그 틀안에 있는 객체 속성값이 instance이다.

-메소드-

메소드는 어떠한 작업을 수행하는 코드를 하나로 묶어 놓은 것이라고 생각하면 된다.

메소드가 필요한 이유는 크게 세가지

  1. 재사용성
  • 메소드를 만들어 놓으면 이후 반복적으로 재사용이 가능하다. 물론, 다른 프로그램에서도 사용이 가능
  1. 중복된 코드 제거
  • 프로그램을 작성하다보면 같은 코드가 여러번 반복되어 작성되곤 한다. 이럴 때, 메소드를 활용하면 중복된 부분을 없애므로 보다 효율적인 코드가 된다.
  1. 프로그램 구조화
  • 구조화에 대해서는 아래 예시를 보면서 이해를 할 수 있다.
int[] heights = new int[5]; // 키가 들어가 있는 배열

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

엄청나게 긴 코드를 작성할 때 이러한 방식을 통해 보다 쉽게 수정 및 관리를 할 수 있다.

  • 메소드를 만들 때는 메소드 안에서 동작하는 내용을 잘 표현할 수 있도록 이름을 잘 지어주면, 메소드 안을 들여다 보지 않고도 한 눈에 코드를 읽어내려갈 수 있어서 좋다.
    이것을 readability가 좋다고 표현한다. 이 readability의 기본 품질을 위해서 Java로 메소드를 만들 때 지켜줘야 하는 기본 약속은 다음 두 가지가 있다.
    1. 동사로 시작해야한다.
    2. camel case로 작성해야한다.

댓글