Java(5)
-
객체 지향 프로그래밍(Object Oriented Programming)5 - 다형성(Polymorphism)
다형성 하나의 객체가 많은 타입을 가질 수 있는 성질 상속 관계에 있을 때, 조상 클래스의 타입으로 자식 클래스를 레퍼런스 할 수 있다. public class Animal{ void cry(){ System.out.print("우에에에엥"); } } class Tiger extends Animal{ //cry를 오버라이딩 하였다 @Override void cry(){ System.out.println("어흥"); } void hunt(){ System.out.print("먹잇감을 잡는다"); } } class Tiger extends Dog{ //cry를 오버라이딩 하였다 @Override void cry(){ System.out.println("멍멍"); } void catch(){ System.ou..
2021.10.30 -
객체 지향 프로그래밍(Object Oriented Programming)4 - 캡슐화(Encapsulation)
캡슐화 관련 있는 변수와 메서드를 하나의 클래스로 묶어, 외부에서 접근하지 못하도록 정보를 은닉하는 것 객체에 대한 직접적 접근을 막음 내부의 정보를 직접 접근 혹은 변경 불가 공개되는 메서드를 통해서만 접근이 가능 - getter, setter //정보를 은닉하기 위해 캡슐회 class Book{ private String title; private int price; //title을 얻을 수 있는 getter public String geteTitle(){ return this.title } //title을 변경할 수 있는 setter public void setTitle(String title){ this.title = title; } //price의 getter setter는 생략 } Java의 ..
2021.10.30 -
객체 지향 프로그래밍(Object Oriented Programming)3 - 상속(Inheritance)
상속 부모 클래스의 멤버를 자식이 물려받아 정의하여 코드의 재사용이 가능한 것 상속하는 클래스 - 부모 클래스, 수퍼 클래스, 상위 클래스 상속 받는 클래스 - 자식 클래스, 서브 클래스, 하위 클래스 특징 코드의 절감 - 기존 코드의 멤버를 물려받음 유지 보수성 향상 - 부모의 코드를 변경하면 자식에게 모두 적용 단일 상속 - 자식은 단 하나의 부모에게만 상속을 받을 수 있음 extends키워드를 통해 상속 받음 상속의 관계는 is a 라고 한다 - Tiger is a Animal super카워드를 통해 조상 클래스 멘버에 접근 //부모 클래스 public class Animal{ void eat(){} void poo(){} void cry(){} } //extemds키워드로 상속 받음 //부모의 모..
2021.10.30 -
객체 지향 프로그래밍(Object Oriented Programming)2 - 추상화(Abstraction)
현실의 객체가 갖는 속성과 기능은 추상화(abstraction)되어 클래스에 정의된다 클래스는 구체화 되어 프로그램의 객체(instance, object)가 된다. 클래스(class) 객체를 정의해 놓은 것, 틀, 설계도 객체를 생성할 때 사용 데이터 타입 관련 있는 변수와 함수를 묶어서 만든 사용자 정의 자료형 객체(instance, object) 클래스를 구체화 한 것 실제로 동작하는 것 메모리에 생성된 데이터 객체 생성과 메모리 - JVM의 메모리 구조 class area 클래스 원형 로딩 Field 정보 Method 정보 타입 정보 상수 풀 method stack 메서드들 실행 공간 thread별로 별도 관리 메서드 호출 순서대로 쌓임(후입선출) 메서드 프레임에 로컬 변수도 쌓임 로컬변수는 선언된..
2021.10.26 -
객체 지향 프로그래밍( Object Oriented Programming)1
객체(Object) 물리적으로 존재하거나 추상적인 것 중, 자신의 속성과 동작을 가지는 모든 것 우리 주변에 있는 모든 것 예: 인간, 개, 고양이, 객체 지향 프로그래밍 주변의 것들을 객체와 해서 프로그래밍 하는 것 객체들 간 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 객체 지향 프로그래밍 장점 블록 형태의 모듈화된 프로그래밍 1. 코드 재사용성이 용이하다 이미 만들어진 클래스를 이용 상속을 통한 확장 2. 유지보수가 쉽다 수정할 부분이 클래스 내부에 멤버변수 혹은 메서드로 존재 3. 대형 프로젝트에 적합 클래스 단위로 모듈화 되어있어, 역할 분담이 쉬움 4. 신뢰성 높은 프로그래밍 가능 개발자가 만든 데이터를 사용 5. 실제 세계에 대한 쉬운 모델링 실 세계의 모든 것을 객체로 여김 객..
2021.10.26