Studying/JAVA (21) 썸네일형 리스트형 [JAVA]_다형성과 설계 ▶ 객체지향 특징 - 추상화- 캡슐화- 상속- 다형성 ▶ 객체지향 프로그래밍 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것.각각의 객체는 메시지를 주고받고, 데이처를 처리할 수 있음.객체지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용.유연하고 변경이 용이하다는 것은 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법을 말함. 역할과 구현을 분리하면 유연해지며, 단순해지고 변경도 편리해짐. - 클라이언트는 대상의 역할(인터페이스)만 알면 됨.- 클라이언트는 구현 대상의 내부 구조를 몰라도 됨.- 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않음.- 클.. [JAVA]_Polymorphism2(다형성2) ● 다형성 사용하지 않은 코드 ● package poly.ex1;public class Dog { public void sound() { System.out.println("멍멍"); }}package poly.ex1;public class Cat { public void sound() { System.out.println("야옹"); }}package poly.ex1;public class Cow { public void sound() { System.out.println("음메"); }}package poly.ex1;public class AnimalSoundMain { public static void main(String[.. [JAVA]_Polymorphism1(다형성1) 1. 다형성(Polymorphism) - 사용 방법은 동일하지만 실행 결과가 다양하게 나오는 성질.- 한 객체가 여러 타입의 객체로 취급될 수 있는 능력.- 보통 하나의 객체는 하나의 타입으로 고정되어 있지만, 다형성을 사용하면 하나의 객체가 다른 타입으로 사용될 수 있음. ▶ 핵심이론 ① 다형적 참조② 메서드 오버라이딩package poly.basic;public class Parent { public void parentMethod() { System.out.println("Parent.parentMethod"); }}package poly.basic;public class Child extends Parent { public void childMethod() { .. [JAVA]_Inheritance(상속) 1. 상속 ▶ 상속관계 상속은 객체 지향 프로그래밍의 요소 중 하나로, 기존 클래스의 필드와 메서드를 새로운 클래스에서 재사용하게 해 줌.이름 그대로 기존 클래스의 속성과 기능을 그대로 물려받는 것.상속을 사용하려면 extends 키워드를 사용하면 되고, 대상은 하나만 선택할 수 있음. ● 용어정리 ●- 부모클래스(슈퍼클래스) : 상속을 통해 자신의 필드와 메서드를 다른 클래스에 제공하는 클래스.- 자식클래스(서브클래스) : 부모 클래스로부터 필드와 메서드를 상속받는 클래스. package extends1.ex1;public class ElectricCar { public void move() { System.out.println("차를 이동합니다."); } public vo.. [JAVA]_final 1. fianl final 키워드는 이름 그대로 끝이라는 뜻.변수에 final 키워드가 붙으면 더는 값을 변경할 수 없음. ■ final 변수와 상수1 ▶ fianl_지역변수package final1;public class FinalLocalMain { public static void main(String[] args) { // final 지역 변수1 final int data1; data1 = 10; // 최초 한 번만 할당 가능 //data1 = 20; // compile error // final 지역 변수2 final int data2 = 10; // data2 = 20; // compile erro.. [JAVA]_자바 메모리 구조와 static 1. 자바 메모리 구조 ● 종류 ●① 메서드 영역 - 클래스 정보를 보관. (예를 들면 붕어빵 틀) - 프로그램을 실행하는데 필요한 공통 데이터 관리. 이 영역은 프로그램의 모든 영역에서 공유.② 스택 영역 - 실제 프로그램이 실행되는 영역. - 자바 실행 시, 하나의 실행 스택이 생성. 각 스택 프레임은 지역변수, 중간 연산 결과, 메서드 호출 정보 등을 포함. - 메서드 종료되면 해당 스택 프레임 제거.③ 힙 영역 - 객체(인스턴스)와 배열이 생성되는 영역. (new 명령어 사용 시 이 영역 사용.) - GC(가비지컬렉션)가 이루어지는 주요 영역이며, 더 이상 참조되지 않은 객체는 GC에 의해 제거. !참고! 스택 영역은 더 정확히는 각 스레드별로 하.. [JAVA]_Access Modifier(접근제어자) 1. 접근제어자 접근제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있음. package access;public class Speaker { int volume; Speaker(int volume) { this.volume = volume; } void volumeUp() { if(volume >= 100) { System.out.println("용량을 증가할 수 없습니다. 최대 음량입니다."); } else { volume += 10; System.out.println("음량을 10 증가합니다."); } } voi.. [JAVA]_Package(패키지) 1. 패키지 만약 쇼핑몰 시스템을 개발한다고 가정했을 때, 클래스가 몇 개 없다면 크게 고민하지 않지만,기능이 점점 추가되어서 많은 클래스가 생성된다면 관련 있는 기능들을 분류해서 관리하고 싶을 것임.폴더, 디렉토리 같은 개념처럼 이것이 패키지임. user User UserManager UserHistory product Product ProductCagalog ProductImage order Order OrderService OrderHistory .... 여기서 user, product 등이 패키지임.해당 패키지 안에 관련된 자바 클래스들을 넣으면 됨. package pack;public class Data { public Dat.. 이전 1 2 3 다음