ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이것이 자바다 정리 6장 (클래스)
    JAVA/JAVA 2022. 6. 21. 17:38

    객체지향 프로그래밍

    부품 객체를 먼저 만들고 이것들을 하나씩 조립해 완성된 프로그램을 만드는 기법

    객체지향 프로그래밍의 특징

    캡슐화, 상속, 다형성

     

    캡슐화

    객체의 내부 구조를 알지 못하게하고, 객체가 제공하는 필드와 메소드만 이용할 수 있게 한다.

    상속

    부모 객체가 필드와 메소드를 자식 객체에게 물려주는 것을 말한다. 

    - 자식 객체에서는 반복된 코드가 줄어듬.- 부모 클래스 코드 변경시 자식에도 같이 적용됨.

    다형성

    같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다.

    예를 들어 타이어타입에 한국 타이어/금호 타이어 객체를 대입하는 것을 말한다.

     

    객체/클래스/ 인스턴스

    클래스는 설계도, 클래스에는 객체를 생성하기 위한 필드와 메서드로 정의되어 있음.

    클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 함.

     

    클래스 선언

    필드, 생성자, 메소드

     

     

    필드 : 객체의 고유한 데이터, 정보를 저장하는 곳이다. 변수와 다른 점은 필드는 생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는 한 객체와 함께 존재한다는 점이다.

    생성자 : 객체 생성 시 초기화를 담당한다.

     

    생성자 오버로딩 : 생성자의 다양화를 위해 매개 변수를 달리하는 생성자를 여러 개 선언하는 것

    예시 : String method1(String one); String method1(String one, int two);

     

    this()는 자신의 다른 생성자를 호출하는 코드로 반드시 생성자의 첫줄에서만 허용된다.

    public class Car {
    	String model;
    	String color;
    	Car(String model) {
    		this(model,"빨간색");
    	}
    	Car(String model, String color) {
    		this.model = model;
    		this.color = color;
    	 }
    	void printCar() {
    		System.out.println(model + " " + color);
    	}
    }
    public class CarP {
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Car car = new Car("제네시스");
    		car.printCar();
    		// 제네시스 빨간색
    	}
    }

    정적 멤버와 Static

    정적 멤버는 클래스에 고정된 멤버로써 객체 생성없이 사용할 수 있는 필드와 메소드를 말함.

    public class Calculator {
    	static double pi = 3.14159;
    	static int plus(int x, int y) {
    		return x + y;
    	};
    	static int minus(int x, int y) {
    		return x - y;
    	};
    	public static void main(String[] args) {
    		double i = Calculator.pi;
    	}
    }
    public class CalculatorP {
    	public static void main(String[] args) {
    		double i = Calculator.pi;
    		double plus = Calculator.plus(10, 20);
    		double minus = Calculator.minus(20, 10);
    		System.out.println(i); // 3.14159
    		System.out.println(plus); // 30.0
    		System.out.println(minus); // 10.0
    	}
    
    }

    싱글톤(Singleton)

    • 전체 프로그램에서 단 하나의 객체만 만들도록 보장하는 경우가 있는데, 이 객체를 싱글톤이라고 한다.
    public class Singleton {
    	private static Singleton singleton = new Singleton();
    	private Singleton() {};
    	static Singleton getInstance() {
    		return singleton;
    	}
    }
    public class SingletonExample {
        public static void main(String[] args) {
            Singleton obj1 = Singleton.getInstance();
            Singleton obj2 = Singleton.getInstance();		
            if(obj1 == obj2) {
                System.out.println("같은 Singleton 객체입니다.");
                // 이걸 탐
            } else {
                System.out.println("다른 Singleton 객체입니다.");
            }
        }
    }

    final 필드와 상수

    final 필드

    • final필드란 초기값이 저장되면 이것이 최종적인 값이 되어서 프로그램 실행 도중에 수정할 수 없다는 것이다.
    • 객체 마다 가지는 불변의 인스턴트 필드라고 할 수 있다.

    상수(static final)

    • 상수는 불변의 값을 뜻한다.
    • final 필드와 다른 것은,객체 마다 저장할 필요가 없는 공용성을 띠며, 여러 값으로 초기화될 수 없다는 것이다.
    • static final 필드는 객체마다 저장되지 않고, 클래스에만 포함된다. 또한 초기값이 저장되면 변경할 수 없다.

    접근제한자

    클래스 및 클래스의 구성 멤버에 대한 접근을 제한하는 역할

    public : 모든 클래스 접근

    protected : 같은 패키지와 자식 클래스만 접근 가능

    default : 같은 패키지만 접근 가능

    private : 외부 클래스 접근 불가능

     

    'JAVA > JAVA' 카테고리의 다른 글

    이것이 자바다 7장 상속  (0) 2022.06.23
    이것이 자바다 정리 5장 (참조 타입)  (0) 2022.06.21
Designed by Tistory.