Dev.Program/Java & Spring(53)
-
[Java] 인터페이스(interface)
p.276 ======== JAVA0318 - Ex.java 만들기 p.276 클래스가 아니므로 선언 시 class 키워드 대신 interface 키워드 사용 인터페이스는 추상메서드, 상수만 가질 수 있다. ⇒ 모든 메서드는 public abstract 가 붙은 추상메서드로 취급됨(생략 가능) ⇒ 모든 멤버변수는 public static final 이 붙인 상수로 취급됨(생략 가능) 추상클래스와 마찬가지로 객체 생성이 불가능 ⇒ 단, 참조변수 타입으로는 사용 가능 = 다형성 활용(업캐스팅) 가능 추상메서드 구현을 강제하여, 코드의 통일성이 향상됨 클래스에서 인터페이스를 상속받아 구현해야할 경우 implements 키워드 사용 인터페이스끼리 상속받을 경우 extends..
2022.10.05 -
[Java] 추상(Abstract) 클래스/메서드
======== JAVA0316 주로 특정 변수 값을 지정하기 위해 클래스 내에 상수 제공 ⇒ 이 때, 값 변경이 불가능하고 클래스명만으로 접근하도록 static final 사용 ======== Ex.java 만들기 p.270 두 차는 종류로 보면 같은 종류! 그랜져/파란색 근데 자바는 ‘두 차는 다르다’로 인식한다. 자바는 대소문자/한글영문 등 전부 구분하기 때문! > 그럼 같은 차 종류를 구분해야할 땐 어떻게 해야할까? 이런 식으로 멤버변수 값을 저장하는 변수(상수)를 선언 및 초기화 해준다. 그럼 main(){} 내에서 이렇게 가져오기만 하면 됨(값을 안에 저장되어 있기 때문) > 그런데 이런식으로 하면 값을 변경할 수 있다! 값을 변경하지 못하게..
2022.10.05 -
[Java] 싱글톤 디자인 패턴(Singleton Design Pattern) / final 키워드
책 p251-252 3.4 Singleton 디자인 패턴(JSP 에서 쓰는 MemberBean/DAO 도 디자인패턴임) ⇒ 어떤 목적을 달성하기 위한 프로그래밍 가이드 > 여러개의 인스턴스를 만들면 안될 때(ex) Account() 같이 은행코드들), Singleton 디자인 패턴을 사용함. 단 하나의 인스턴스만을 공유하도록 하는 프로그래밍 기법 외부에서 인스턴스 생성을 하지 못하게 차단하고 클래스 내에서 직접 인스턴스를 생성하여 외부에 생성된 인스턴스를 리턴 누구나 단 하나의 인스턴스만을 공유하여 사용해야함 → 개념 부분 이므로 잘 모르겠으면 밑에 실제 정의할 때의 문법 순서 잘 보기 외부에서 인스턴스 생성이 불..
2022.10.05 -
[Java] static
static 계속 이어서 설명 (복습) ======== 오늘날짜 프로젝트 만들기 JAVA0224 - Ex.java 만들기 static이 붙은 메서드에 대해 알아보자. ⇒ 실행은 잘 되는데 노란 밑줄 그임. (정석적인 접근 방법이 아님!) 정상 적인 접근 방법(클래스명.메서드()) → 결과는 같다 > static 메서드도 변수처럼 인스턴스 생성과 관계없이 클래스명만으로 접근 가능 이렇게 인스턴스 생성 전인 위쪽으로 옮겨도 실행 된다! (오류 안남) > static 변수는 한놈이 바뀌는 순간 나머지도 다 바뀜! (이것만 주의하면 된다) static 메서드는 제약이 걸림 → 밑에서 더 알아볼 거! 메서드 선언 시 리턴타입 앞에 static 키워드를 붙여서 정의 클래..
2022.10.05 -
[Java] instanceof 연산자/다형성/자바프로그램실행과정/static
p260 형변환을 처리하다가 java.lang.ClassCastException을 발생 ⇒ 뭔가 해선 안되는 변환을 했다고 알려주는 오류! 좌변의 객체(참조변수)가 우변 클래스의 타입인지 판별하는 연산자 (=실제 메모리에 있는 객체가 특정클래스 타입인지를 boolean 타입으로 리턴) 판별 결과가 true 이면 형변환이 가능한 관계(업캐스팅 또는 다운캐스팅) 판별 결과가 false 이면 절대로 형변환 불가능 형변환을 바로 수행하지 않고, instanceof 연산자를 통해 검사 후 수행하는게 안전하다 if(A instanceof B) {} ⇒ A 는 참조변수, B 는 클래스명 ======== 오늘날짜 프로젝트 만들고 Ex.java 만들기 - in 까지만 ..
2022.10.05 -
[Java] 형변환(Type Casting) - 업캐스팅/다운캐스팅
p.234 지난시간 폴더(JAVA0217)에 ======== test3.java 만들기(p.234랑 똑같이 치기) 생성자 자동생성 Alt + Shift + S → O 했을 때 나오는 창. 지금은 Person2(String) 타입만 있음. Person2() {} 만 적어줬는데 생성자 만들 때 Person2() 가 생김! 부모랑 똑같은거 하나 만들어줌 ======== Ex.java 만들기 p.254 (다형성) 참조형 변수(레퍼런스타입 변수)끼리의 형변환 업캐스팅(Upcasting) 과 다운캐스팅(Downcasting) 으로 나뉨 참조형 변수로 다른 타입의 인스턴스를 참조하기 위해 변환하는 것 1. 업캐스팅(Upcasting) 슈퍼클래스의 레퍼..
2022.10.05