Java

다형성을 사용하지 않고, 역할과 구현을 분리하지 않고 단순하게 개발해보자public class K3Car { public void startEngine() { System.out.println("K3Car.startEngine"); } public void offEngine() { System.out.println("K3Car.offEngine"); } public void pressAccelerator() { System.out.println("K3Car.pressAccelerator"); }}public class Driver { private K3Car k3Car; public void setK3Car(K3Car k3C..
다향성의 장점을 알아보기 위해 다형성을 사용하지 않는 프로그램을 작성해보자개, 고양이, 소 울음 소리를 테스트하는 프로그램이라고 가정해본다.public class Dog { public void sound() { System.out.println("멍멍"); }}public class Cat { public void sound() { System.out.println("야옹"); }}public class Cow { public void sound() { System.out.println("음매"); }}public class AnimalSoundMain { public static void main(String[] args) {..
객체 지향 프로그래밍의 대표적인 특징은 캡슐화, 상속, 다형성이다.다형성(Polymorphism)은 이름 그대로 '다양한 형태', '여러 형태'라는 뜻이다.프로그래밍에서 다형성은 한 객체가 여러 타입의 객체로 취급할 수 있는 능력을 의미한다. 다형성을 이해하기 위해 2가지 핵심 이론을 알아야 한다.다형적 참조, 메서드 오버라이딩 다형적 참조이해하기 위해 간단한 상속관계를 만들어본다.public class Parent { public void parentMethod() { System.out.println("Parent.parentMethod"); }}public class Child extends Parent { public void childMethod() { ..
상속 관계가 왜 필요한지 이해하기 위해 예제 코드를 통해 실행해본다. 전기차, 가솔린차를 만들어 이동, 충전(주유) 기능을 각각에 추가했다.전치가, 가솔린차 두개의 공통점은 '차'이다. 그래서 move 기능이 중복된다.public class ElectricCar { public void move() { System.out.println("차를 이동합니다."); } public void charge() { System.out.println("충전합니다."); }}public class GasCar { public void move() { System.out.println("차를 이동합니다."); } public void fillUp..
final 키워드는 말그대로 끝!이다.변수에 final 붙으면 한번 값이 할당되고 수정할 수 없다.public static void main(String[] args) { //지역변수 final int data1; data1 = 100; //재할당 불가 //data1 = 200; //바로 할당 final int data2 = 10; method(20);}//final를 매개변수에 사용하는 경우static void method(final int parameter) { //parameter = 20; -> 컴파일 오류} final 필드를 사용할 경우 해당 필드는 생성자로 한번만 초기화할 수 있다.public class ConstructInit { final int val..
자바 메모리 구조자바의 메모리 구조는 크게 메서드 영역, 스택 영역, 힙 영역 3개로 나뉜다. 메서드 영역: 클래스 정보를 보관한다. 쉽게 생각하면 클래스 정보가 붕어빵 틀이다.스택 영역: 실제 프로그램이 실행되는 영역으로 메서드가 실행할 때마다 하나씩 쌓인다.힙 영역: 객체(인스턴스)가 생성되는 영역으로 new 명령어를 사용하면 이 영역을 사용한다. 틀로 만든 붕어빵들이 존재함 위 내용은 쉽게 비유한 것으로 실제로는 다음과 같다. ✔️ 메서드 영역(Method Area)메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다.그래서 이 영역은 프로그램의 모든 영역에서 공유하고 있다. - 클래스 정보: 클래스의 실행코드(바이트 코드), 필드, 메서드와 생성자 코드 등 모든 실행코드 - sta..
지구용사
'Java' 태그의 글 목록