Generic 자료형 class에서 사용하는 변수의 자료형이 여러개인 경우 -> 클래스의 자료형을 특정하지 않는 것 컴파일 될 때 가 원하는 자료형으로 바뀝니다. 형변환을 일일이 안해줘도 됩니다. ex) //Circle.java public class Circle { //.. } //GenericEX.java //Generic class public class GenericEX { private T shape; public void setShape(T shape) { this.shape = shape; } public T getShape() { return shape; } public String toString() { return shape.toString(); } } //Test.java public..
Class 클래스 로컬 메모리에 객체 없는 경우, 원격 프로그래밍, 객체의 타입을 알 수 없는 경우에 사용 .class 파일(바이트 코드)의 정보를 가져오거나 instance 생성할 수 있는 메서드가 정의 되어있는 것 Class를 동적으로 로드한다. //Class.forName("클래스 이름"); Class cl = Class.forName("java.lang.String"); Class 이름으로 Class 클래스 가져오기 Class cl = String.class; 생성된 인스턴스에서 Class 클래스 가져오기 // Object 메서드 // .getClass()를 사용하기 위해서는 instance가 있어야 합니다. String str = new String(); Class cl = str.getClas..
JAVA 컴파일 과정 Program -> JVM -> OS -> H/W - Program -> JVM = 컴파일 타임 -> 런타임 컴파일 타임 - 소스코드 작성 -> 컴파일 과정 통해 기계어 코드로 변환 - JAVA 파일을 JAVA 컴파일을 통해 바이트 코드로 변환 1. JAVA 클래스 파일(.java)을 JAVA 컴파일러(javac.exe)을 통해 JVM이 이해할 수 있는 중간 단계의 언어 바이트(.class)로 바꿔줍니다. 런타임 -컴파일 과정 후 프로그램이 실행, 응용프로그램이 동작 할 때 - Runtime Data Area -> Execution Engine -> java 인터프리터, JIT 컴파일러 -> 런타임 시스템 -> 운영체제 -> H/W 2. 바이트(.class..
Object class - 모든 class의 최상위 class https://docs.oracle.com/javase/10/docs/api/java/lang/Object.html import java.lang (자동적으로 import 된다.) String, int, System... 모든 class는 object 클래스를 상속 받는다. +추가 (toString() 관련) toString() 객체가 가지고 있는 정보나 값들ㅇ르 문자열로 만들어 return 하는 메서드 Book book = new Book(); System.out.println(book.toString()); // System.out.println(book); //인스턴스 출력 ch4_1.Book@3830f1c0 //ch4_1.Book : ..
default interface에서 구현을 가지는 메서드 interface를 구현한 class의 instance가 생성되어야 사용 가능 재정의 가능 //interface public interface Calc { default void des() { //.. method1(); } private void method1() { //... } } //Test.java public class Test { public static void main(String[] args) { Calc calc = new 하위class(); calc.des(); } } static interface에서 구현을 가지는 메서드 instance 생성과 상관없이 사용가능 inplements가 되지 않더라도 interface type으..
(활용)interface를 활용한 dao 구현 ! DB에 회원 정보를 넣는 dao(data access object)를 여러 DB 제품이 지원될 수 있게 구현함 환경파일(db.properties) 에서 database의 종류에 대한 정보를 얻는다 -> 정보에 맞게 dao 인스턴스를 생성항 실행한다. db.properties file은 src file 밖에 넣어 놓습니다. //UserInfo.java public class UserInfo { private String userId; private String password; private String userName; //... set, get 함수만 } //UserInfoDao.java //interface public interface UserInf..
인터페이스 (interface) https://whatisthenext.tistory.com/36 https://gitlab.com/easyspubjava/javacoursework/-/tree/master/Chapter3/3-11 구현 코드가 없다, 여러개 구현 가능 모든 메서드가 추상 메서드로 선언된다. (public abstract) 모든 변수는 상수로 선언된다. (public static final) 점선 화살표로 표시 인터페이스를 구현한 클래스는 인터페이스 형으로 선언한 변수로 형 변환 가능 (인터페이스에 선언된 메서드만 사용 가능) ex) interface메서드 C = new 클래스(); interface를 사용하는 이유 클래스나 프로그림이 제공하는 기능을 명시적으로 선언 client와 프로그..
추상 class (abstract class) 메서드 내용이 추상적이기 때문에 만드는 것입니다. 구현 코드가 없이 메서드 선언만 있는 것 상위 클래스에서 구현 x -> 하위 클래스에서 구현해라 !! // Animal.java 상위 class public abstract class Animal { abstract void shouting(); abstract void type(); public void move() { System.out.println("움직입니다."); } } // Human.java 하위 class public class Human extends Animal { @Override void shouting() { System.out.println("나는 사람이다!!"); } @Overri..