JAVA/객체지향의 원리

abstract 키워드 - 추상 메서드와 추상 클래스 추상 메서드란 선언부는 있지만 구현부가 없는 메서드를 말한다. 추상 메서드를 하나라도 갖고 있는 클래스는 반드시 추상 클래스여야 한다. public class Driver2 { public static void main(String[] args){ Animal[] animals = new Animal[5]; animals[0] = new Dog(); animals[1] = new Cat(); animals[2] = new Cow(); animals[3] = new Bird(); animals[4] = new Dolphin(); for(int i=0; i new 사용 불가 추상 클래스는 하위 클래스에게 메서드의 구현을 강제한다. 오버라이딩 강제 추상 메..
객체지향의 4대 특성 - 캡!상추다 캡슐화 (Encapsultation): 정보 은닉(information hiding) 상속 (Inheriance) 재사용 추상화 (Abstaction) : 모델링 다형성 (Polymorphism) : 사용 편의 클래스 vs. 객체 = 붕어빵틀 vs.붕어빵? 금형기계 붕어빵틀 = new 금형기계(); 붕어빵틀은 붕어빵을 만드는 팩터리 클래스와 객체를 구분하는 간단한 방법 - 나이 물어보기 사람의 나이는 몇살인가 -> 클래스 김연아의 나이는 몇살인가 -> 객체 뽀로로의 나이는 몇살인가 -> 객체 펭귄의 나이는 몇살인가 -> 클래스 클래스는 분류에 대한 개념이지 실체가 아니다! 클래스 : 객체 = 펭귄 : 뽀로로 = 사람: 김연아 추상화 : 모델링 여러가지 사물이나 개념에서..
자바 프로그램의 개발과 구동 현실 세계 가상 세계(자바 월드) 소프트웨어 개발 도구 JDK - 자바 개발 도구 JVM용 소프르웨어 개발 도구 운영체제 JRE - 자바 실행 환경 JVM용 OS 하드웨어 - 물리적 컴퓨터 JVM - 자바 가상 기계 가상의 컴퓨터 JDK < JRE < JVM Write Once Run Everywhere JVM이 중재자로서 각 플랫폼(윈도우, 유닉스, 리눅스 등)에서 프로그램을 구동하게끔 해줌 기계어를 포함한 모든 프로그래밍 언어의 메모리 사용 방식 코드 실행 영역 데이터 저장 영역 객체지향 프로그래밍 언어의 메모리 사용 방식 코드 실행 영역 스태틱 (static) 영역 스택 (stack) 영역 힙(Heap) 영역 자바에 존재하는 절차적 / 구조적 프로그래밍의 유산 함수 -..
스프링을 이해하기 위한 이전의 기술 SOA (Service Oriented Architecture) - 서비스 지향구조 CBD (Component Based Development) - 컴포넌트 기반 개발 OOP (Object Oriented Programming) 절자적 / 구조적 프로그래밍 기계어 / 어셈블리어 기계어 -> 객체지향 프로그래밍 언어로 0과 1의 행진 (에드삭, 유니박) 애드삭 전욕, 유니박 전용 기계어가 필요하며 호환이 불가능 어셈블리어 인간지향적 니모닉 (add, plus)과 기계어의 일대일 코드 매칭표 cpu별 어셈블리어 필요 C언어 - 강력한 이식성 one source multi object use anywhere 컴파일러로 cpu별 소스 번역 그러나 컴파일전 기종에 맞게 소스 변..
Goal : 인터페이스란 무엇인지 알아보고, 코드에서는 어떻게 구현되는지 알아본다. 인터페이스란? In Java, an interface is a blueprint or template of a class. It is much similar to the Java class but the only difference is that it has abstract methods and static constants. There can be only abstract methods in an interface, that is there is no method body inside these abstract methods. The class that implements the interface should be ab..
Goal : 추상화란 무엇인지 알아보고, 코드에서는 어떻게 구현되는지 알아본다. 추상화란? 객체 지향 프로그래밍 이론에서 추상화 는 작업을 수행하고 상태를 보고하며 시스템의 다른 객체와 "통신"할 수 있는 추상적인 "행위자"를 나타내는 객체를 정의하는 기능을 포함합니다. 캡슐화 라는 용어 는 상태 세부 정보 를 숨기는 것을 의미 하지만 이전 프로그래밍 언어에서 데이터 유형 의 개념을 확장하여 동작 을 데이터와 가장 강력하게 연관시키고 다양한 데이터 유형이 상호 작용하는 방식을 표준화하는 것이 추상화 의 시작입니다 . 추상화 클래스란? An Abstract class is a class that represents a concept and whose objects can’t be created. A cla..
Goal : 상속이 무엇인지 알아보고, 코드에서는 어떻게 구현되는지 알아본다. 상속이란? 객체 지향 프로그래밍(OOP)에서, 상속(inheritance)은 객체들 간의 관계를 구축하는 방법이다. 클래스로 객체가 정의되는 고전 상속에서, 클래스는 기반 클래스, 수퍼클래스, 또는 부모 클래스 등의 기존의 클래스로부터 속성과 동작을 상속받을 수 있다. 그 결과로 생기는 클래스를 파생 클래스, 서브클래스, 또는 자식 클래스라고 한다. 상속을 통한 클래스들의 관계는 계층을 형성한다. 프로토타입 기반 프로그래밍에서는, 객체가 클래스를 따로 정의할 필요 없이 다른 객체로부터 직접 정의될 수 있다. 이러한 특징을 차등 상속이라고 부른다. 백문이 불여일타. 코드로 개념을 이해해보자! 예제 1. 필수 값이 없는 부모 클래..
Goal : 구성이 무엇인지 알아보고, 코드에서는 어떻게 구현되는지 알아본다. 요구사항 Fan Class State (Member Variables) make radius; color; isOn; speed; Constructors Fan(String make, double radius, String color) Behaviour(Member Methods) void switchOn() void switchOff() void setSpeed() String toString() using String.format method state, constructor, methods Fan Class package com.in28mins.oop; public class Fan { //state (3 importan..
Goal : 생성자는 무엇인지 알아보고 메서드와 차이를 알아본다. Constructor 생성자란 ? 생성자(영어: constructor, 혹은 약자로 ctor)는 객체 지향 프로그래밍에서 객체의 초기화를 담당하는 서브루틴을 가리킨다. 생성자는 객체가 처음 생성될 때 호출되어 멤버 변수를 초기화하고, 필요에 따라 자원을 할당하기도 한다. 객체의 생성 시에 호출되기 때문에 생성자라는 이름이 붙었다. 생성자는 대체로 멤버 함수와 같은 모양을 하고 있지만, 값을 반환하지 않는다는 점에서 엄밀한 의미의 함수는 아니다. A constructor is a member function of a class that is called for initializing objects when we create an object..
Goal : 캡슐화의 의도 & 목적을 이해하고 코드에서는 어떻게 구현되는지 알아본다 Encapsulation 캡슐화란 ? 객체 지향 프로그래밍 (OOP)에서 캡슐화는 데이터를 해당 데이터에 대해 작동하는 메서드와 번들로 묶거나 일부 개체 구성 요소에 대한 직접 액세스를 제한하는 것을 말합니다. 캡슐화는 클래스 내부의 구조화된 데이터 개체의 값이나 상태를 숨기는 데 사용되며 숨겨진 구현 세부 정보를 노출하거나 메서드에서 유지 관리하는 상태 불변성을 위반할 수 있는 방식으로 클라이언트가 직접 액세스하는 것을 방지합니다. public class MotorBike { //state int speed; //behaviour void start(){ System.out.println("MotorBike.start"..
dev_rosieposie
'JAVA/객체지향의 원리' 카테고리의 글 목록