[자바의 정석] - 추상 클래스와 추상메서드
·
📝 끄적끄적/🖥️ 자바의 정석
추상클래스, 추상 메서드 미완성(부족한) 설계도 미완성 메서드를 갖고 있는 클래스 abstract class Player { //추상클래스(미완성 클래스) abstract void play(int pos); //추상메서드(몸통{}이 없는 미완성 메서드) abstract void stop(); //추상메서드 } 다른 클래스 작성에 도움을 주기 위한 것이다. 인스턴스 생성이 불가능하다. Player p = new Player(); //에러. 추상 클래스의 인스턴스 생성 불가 상속을 통해 추상 메서드를 완성해야 인스턴스 생성이 가능하다. class AudioPlayer extends Player { void play(int pos); { /* 생략 */} void stop(); { /* 생략 */} } Aud..
[자바의 정석] 참조변수의 형변환, instanceof 연산자
·
📝 끄적끄적/🖥️ 자바의 정석
참조변수의 형변환사용할 수 있는 멤버(멤버 변수, 메서드)의 갯수를 조절하는 것이거 외에는 아무것도 없다!!주소값이나 객체? 절대 안바뀐다. 조상 자손 관계일때만 참조변수 서로 형변환 가능(형제X)class Car {}class FireEngine extends Car {}FireEngine f = new FireEngine();Car c = (Car)f; //조상인 Car타입으로 형변환(생략가능) 예제class CastingTest1 { public static void main(String args[]) { Car car = null; FireEngine fe = new FireEngine(); FireEngine fe2 = null; fe.water(); car = fe; // car..
[자바의 정석] 제어자, 캡슐화
·
📝 끄적끄적/🖥️ 자바의 정석
제어자(modifier) 영어로 따지면 형용사다. 클래스와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미 부여 접근 제어자 public, protected, (default), private default는 아무것도 아님. 그 외 static, fina, abstract, synchronized, volatile, strictfp …. 하나의 대상에 여러 제어자를 같이 사용 가능하다.(접근 제어자는 하나만) public class ModifierTest { public static final int WIDTH = 200; } static - 클래스의, 공통적인 final - 마지막의, 변경될 수 없는 final class FinalTest { //조상이 될 수 없는 클래스 final int MAX_..
[PostgreSQL] 함수로 공통 코드 조회하기(문자열 배열)
·
💻 Dev/Database
최근 고도화 프로젝트에서 아래처럼 REPLACE문을 거의 1n중으로 감싼 하드코딩 쿼리를 발견했다.이 프로젝트는 기간이 굉장히 타이트해서 계속 야근하느라 빨리 구현해야 됐었다.이 쿼리 또한 AS-IS 프로젝트의 쿼리 로직을 그대로 사용해도 되는거였으나 차마 그냥 쓰기가 싫어서 함수로 만들었다. 공통 테이블 기반의 함수들은 만들어두면 다른 개발자들도 사용할 수 있어서 유용하다. 간단한 예시로 포스팅하고자 한다.레쓰고 SELECT REPLACE(REPLACE(REPLACE(your_column_name, 'APPLE', '애플'), 'BANANA', '바나나'), 'MANGO', '망고') AS FRUITSFROM comm_cd이 쿼리는 `APPLE,BANANA,MANGO` 이렇게 저장된 문자열의 값을 '애..
[자바의 정석] 상속, 참조변수 super, 생성자 super()
·
📝 끄적끄적/🖥️ 자바의 정석
상속기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용)두 클래스를 부모와 자식으로 관계를 맺어주는 것class Car {}class FireEngine extends Car {}자손은 조상의 모든 멤버를 상속받는다.(생성자, 초기화블럭 제외)왜 자손과 조상이라는 단어를 사용했느냐?부모의 부모도 있을 수 있다. 바로 위에 부모것만 상속받는 게 아니기 때문이다.자손의 멤버 개수는 조상보다 적을 수 없다.(같거나 많다.)자손의 변경은 조상에 영향을 미치지 않는다.자식 클래스의 변경이 있어도 조상에 영향이 가지 않는다.class Tv { boolean power; // 전원상태(on/off) int channel; // 채널 void power() { power = !power; } ..
[자바의 정석] 생성자, 변수/멤버 변수의 초기화
·
📝 끄적끄적/🖥️ 자바의 정석
챕터 6 끝!19개의 영상에서 많은 걸 배웠다.7까지 달려보자 아자자 생성자(contrunctor)인스턴스가 생성될 때마다 호출되는 ‘인스턴스 초기화 메서드’인스턴스 초기화 메서드란? 인스턴스 변수 초기화하는 메서드이다.Time t = new Time(); //객체 생성t.hour = 12; //초기화t.minute = 34; //초기화t.second = 56; //초기화 ❓이것을 간단하게 할 수 없을까Time t = new Time(12, 34, 56); //생성자 호출 특징이름이 클래스 이름과 같아야 한다.리턴값이 없다.(void 안 붙임)모든 클래스는 반드시 생성자를 가져야 한다. 기본 생성자매개 변수가 없는 생성자생성자가 하나도 없을 때만, 컴파일러가 자동 추가매개변수가 있는 생성자를 만든 후, ..