Dreaming Dean
Hello, I'm Studying
  • Secure
  • Java
  • Oracle
  • +others
Coding.
I AM STUDYING PROGRAMING LANGUAGE. IF YOU WANT TO SEE MY WORK THE PROGRAMMING PROJECT, CHECK IT OUT MY BLOG AND GITHUB.

Class and Object 클래스와 객체

Dean92
2017. 3. 28. 19:50


객체지향 프로그래밍

 프로그램을 단순히 데이터를 처리하도록 하는 것이 아니라, 프로그램을'객체'라는 단위로 쪼개고 이 객체들의 상호작용으로 동작하도록 프로그래밍Object Oriented Programming 하는 것이다.

객체지향프로그래밍의 특징
1. 캡슐화Encapsulation
관련 기능과 특성을 한곳으로 모으고 분류하여 캡슐화 하여 코드를 재수정 없이 재활용 하는 것을 말한다.
2. 상속Inheritance
상속을 사용하면 부모 클래스의 특성과 기능을 그대로 이어받고 기능의 일부분을 변경해야 할 경우 상속 받은 자식 클래스에서 그 기능만을 다시 정의하여 수정할 수 있다.
3. 다형성Polymorphism
하나의 변수명, 함수명 등이 필요에 따라 다른 기능으로 쓰일 수 있는 것을 말한다.


클래스와 객체

클래스와 객체란?

 클래스는 객체를 만들 수 있는 틀이나 설계도로써 객체는 클래스에서 작성된 코드대로 동작한다. 객체는 유형적인 형태 뿐만 아니라 개념같은 논리적인 것들도 포함되며, 클래스에 작성된 코드대로 메모리에 생성되게 된다. 프로그래밍 에서는 클래스를 만든다음 클래스로 부터 객체를 만들어 프로그램이 동작하도록 한다.

클래스 : 객체를 만들기위한 설계도 또는 틀
객체 : 기능과 속성을 지니고 있는 사물 또는 개념

클래스를 정의하고 클래스로부터 객체를 만드는 것은 프로그램 코드를 재활용할 수 있기 때문이다.

클래스 객체
자동차 설계도 자동차
비행기 설계도 비행기
오토바이 설계도 오토바이
... ...


인스턴스

 인스턴스는 클래스의 정의를 통해 만들어진 객체를 의미하는 것으로 예를들어 하나의 설계도 클래스를 작성하면 이 클래스에서 각각 구별이 되는 인스턴스를 얼마든지 찍어 낼 수 있다. '인간'이라는 클래스가 만들었다면 세계 60억명의 각 개인들의 인스턴스를 생성할 수 있다는 의미이다.


클래스로부터 인스턴스를 생성하는 방법은 아래와 같다.
클래스명 변수명;   //클래스로부터 객체를 만들기 위해 참조변수 선언
변수명 = new 클래스명();   //클래스로부터 객체를 만든 후 객체를 가르키는 주소를 변수에 저장

Car blackcar;   //타입이 Car인 참조변수 blackCar를 선언
blackCar = new Car();   //Car 인스턴스를 생성하고 생성된 Car인스턴스 주소를 blackCar에 저장


예제
  • Code
    package com.dean.example;
    
    public class Car {
    	//Car의 속성, 멤버변수
    	String carcolor;   //자동차의 색상
    	int carwidth;      //자동차의 너비
    	double carheight;     //자동차의 높이
    	
    	//Car클래스의 기능
    	void carColorChange() {
    		carcolor = "파란색";     //자동차의 색상을 파란색으로 지정함
    	}
    
    	public static void main(String[] args) {
    		Car bluecar;       //Car 인스턴스 생성을 위해 변수 bluecar 선언
    		bluecar = new Car();    //Car 인스턴스 생성
    		
    		bluecar.carcolor = "빨간색";    //Car의 멤버변수 carcolor에 값 저장
    		bluecar.carwidth = 3;     //Car의 멤버변수 carwidth에 값 저장
    		bluecar.carheight = 1.5;    //Car의 멤버변수 carheight에 값 저장
    		
    		System.out.println("현재 자동차의 색은 "+ bluecar.carcolor +"이고 너비는 "
    				               + bluecar.carwidth +"m 이고 높이는 "
    				               + bluecar.carheight + "m 입니다.");
    		
    		bluecar.carColorChange();    //Car 인스턴스의 메서드 carColorChange()를 호출함
    		
    		System.out.println("현재 자동차의 색은 "+ bluecar.carcolor +"이고 너비는 "
    	               + bluecar.carwidth +"m 이고 높이는 "
    	               + bluecar.carheight + "m 입니다.");
    	}
    }
    
  • Result






Comments