Burninghering's Blog
article thumbnail
3-13.객체 지향 핵심 - 인터페이스를 활용한 다형성 구현
JAVA 2022. 1. 23. 23:32

인터페이스를 활용한 다형성 구현 (dao 구현하기) 1. 인터페이스와 다형성 하나의 인터페이스를 여러 객체가 구현하게 되면 클라이언트 프로그램은 인터페이스의 메서드를 활용하여 여러 객체의 구현을 사용할 수 있음 ( 다형성) 여러가지 예 똑같은 인터페이스를 통해서 하나를 호출하지만, 여러 개의 인스턴스를 사용 가능 똑같은 코드가 여러 개의 임플리멘테이션(구현)을 가지는 것이 다형성! 2. 인터페이스를 활용한 dao 구현하기 DB에 회원 정보를 넣는 dao(data access object)를 여러 DB 제품이 지원될 수 있게 구현함 환경파일(db.properties) 에서 database의 종류에 대한 정보를 읽고 그 정보에 맞게 dao 인스턴스를 생성하여 실행될 수 있게 함 패키지가 갖는 계층 구조를 s..

article thumbnail
3-11.객체 지향 핵심 - 인터페이스(interface)
JAVA 2022. 1. 23. 22:01

인터페이스(interface) 1. 인터페이스란? 모든 메서드가 추상 메서드로 선언됨 public abstract (내가 선언하지 않아도 abstract로 컴파일됨) 모든 변수는 상수로 선언됨 public static final (구현코드가 없기 때문에 멤버 변수를 가질 수 없음) interface 인터페이스 이름{ public static final float pi = 3.14F; public void makeSomething(); } 2. 인터페이스 정의와 구현 Calc.java package ch11; public interface Calc { double PI=3.14; int ERROR=-999999999; int add(int num1,int num2); int substract(int num..

article thumbnail
3-8.객체 지향 핵심 - 다운캐스팅, instanceof
JAVA 2022. 1. 22. 14:49

1. 다운 캐스팅(downcasting) 업캐스팅된 클래스를 다시 원래의 타입으로 형 변환 하위 클래스로의 형 변환은 명시적으로 해야 함 Customer vc = new VIPCustomer(); //묵시적(업캐스팅) VIPCustomer vCustomer = (VIPCustomer)vc; //명시적(다운캐스팅) 2. instanceof를 이용하여 인스턴스의 형 체크 instanceof : 원래 인스턴스의 형이 맞는지 확인해주는 키워드 맞으면 true 아니면 false를 반환 함 animal을 ArrayList에 다 넣어놨는데,ArrayList를 매개변수로 주면서 다운캐스팅 하는 메소드 구현해보기 //메인 메소드 안에 Test 코드 구현 AnimalTest test = new AnimalTest(); t..

3-7.객체 지향 핵심 - 상속
JAVA 2022. 1. 21. 18:09

상속은 언제 사용 할까? 1. IS-A 관계(is a relationship : inheritance) -> 재활용(성능 개선) 일반적인(general) 개념과 구체적인(specific) 개념과의 관계 상위 클래스 : 하위 클래스보다 일반적인 개념 ( 예: Employee ) 하위 클래스 : 상위 클래스보다 구체적인 개념들이 더해짐 ( 예: Engineer, Manager...) 상속은 클래스간의 결합도가 높아지는 설계 상위 클래스의 수정이 많으면, 하위 클래스에 영향을 미칠 수 있음 계층구조가 복잡하거나 hierarchy가 높으면 좋지 않음 뼈대를 만들고, 다양한 확장이 필요하다면 IS-A 2. HAS-A 관계(composition) -> 내가 가져다씀 클래스가 다른 클래스를 포함하는 관계 ( 변수로 ..

article thumbnail
1-17.JAVA 기초 - break,continue(if문과 같이 사용)
JAVA 2022. 1. 7. 01:36

중간에 멈추는 break문 / 무시하고 계속 진행하는 continue문 break문 사용하기 감싸고 있는 제어문의 블록을 빠져 나오는 기능 (switch문 에서도 사용) 반복문에서는 주로 조건문(if)와 같이 사용하여 조건에 해당되는 경우 반복 수행을 멈추고 반복문 외부로 수행이 이동 여러 반복문이 중첩되어 있는 경우엔 break 문이 포함되어 있는 반복문만 빠져 나옴 break문 예제 1부터 숫자를 더하여 100이 넘는 순간의 그 숫자와 합을 출력 package ch21; public class BreakTest { public static void main(String[] args) { int sum = 0; int num; for( num = 1; ; num++) { sum += num; if( s..

article thumbnail
1-4.JAVA 기초 - 자료형(자료형의 종류, 정수)
JAVA 2022. 1. 5. 23:46

자료형은 기본 자료형과 참조 자료형이 있다. (참조 자료형은 new로 객체를 생성하는 자료형~) 변수를 선언하면 해당되는 자료형의 크기 만큼 메모리가 할당 변수는 할당된 메모리를 가리키는 이름 int level = 10; // 4바이트 정수형 메모리가 level 이라는 이름으로 할당 됨 기본 자료형(primitive data type)의 종류 정수 자료형의 종류와 크기 3bit로 표현할 수 있는 최대 범위는 2의 3제곱 - 1 (0~7개=8개, 즉 0이 있으니 -1) 맨 앞의 비트가 부호 비트이므로...! byte와 short byte : 1바이트 단위의 자료형 동영상, 음악 파일, 실행 파일의 자료를 처리할 때 사용 short: 2바이트 단위의 자료형 C/C++ 언어와 호환 시 사용 int 자바에서 사..

article thumbnail
1-1.JAVA 기초 - 자바란?
JAVA 2021. 12. 24. 04:58

JAVA의 장점 1. C나 C++은 포인터로 메모리를 직접 핸들링 -> 시스템 다운되는 확률 높음(안정성 불안) 좀더 나은 언어가 없을까? -> JAVA 탄생! (매우 안정적) 2. 플랫폼(운영체제)의 영향을 받지 않으므로, 다양한 환경에서 사용할 수 있다! C코드는 각각 다른 OS 컴파일러 돌려서 각 OS에서 실행, 하지만 JAVA는 Class파일이 생긴다. Class 파일(바이트코드)을 자바 가상 머신에 돌려서 실행시키면 된다! 가상머신만 있다면 OK! (허나 예전에는 가상머신으로 속도가 느렸지만, 현재는 빠른 속도로 성능 UP) 3. 객체 지향 프로그래밍(Object oriented programming(OOP)) 절차 지향 프로그래밍(procedural programming) 프로그램 구현을 시간..