round(숫자, 반올림할 자리) 숫자를 반올림할 자리까지 반올림, 반올림할 자리 생략 시 일의 자리 반올림 select round(47.815, 2), round(47.815, 0), round(47.815, -1); -- 47.82, 48, 50 truncate(숫자, 버림할 자리) 숫자를 버림할 자리까지 남기고 버림 123.45 => 1(-2 자리) 2(-1 자리) 3(0 자리) 4(1 자리) 5(2 자리) select truncate(47.815, 2), truncate(47.815, 0), truncate(47.815, -1); -- 47.81, 47, 40 mod(숫자1, 숫자2) 숫자1을 숫자2로 나눈 나머지를 반환해주는 함수 select mod(243, 10), 243 mod 10, 243..
레퍼런스 형변환 - 레퍼런스 타입끼리의 형변환(상속 관계에서만 사용 가능) - 레퍼런스(변수)를 사용하여 다른 타입의 인스턴스(객체)를 참조하기 위해 변환 업캐스팅 서브클래스의 인스턴스를 슈퍼클래스 타입으로 변환, 자동형변환이 일어난다 다운캐스팅 슈퍼클래스의 인스턴스를 서브클래스 타입으로 변환, 명시적(강제)형변환을 해야한다. 실행시점에서 오류 발생할 수 있음. 사실상 업캐스팅이 이전에 되어야만 가능하다. public class 연습 { public static void main(String[] args) { A a = new A(); B2 b2 = new C4();// 업캐스팅 a = b2;// 업캐스팅 b2 = (B2)a;// 다운캐스팅 } } class A {} class B1 extends A{}..
super 인스턴스의 주소를 저장하는 참조변수 - this는 자신의 인스턴스 주소 저장, super는 부모의 인스턴스 저장 - 서브클래스에서 슈퍼클래스의 은닉된 멤버에 접근할 수 있다. 1. 변수명만 지정했을 경우 현재 선언된 메서드 내에서 먼저 탐색 > 자신의 멤버변수에서 탐색 > 부모의 멤버변수에서 탐색 2. this.변수명을 지정했을 경우 자신의 멤버변수에서 탐색 > 부모의 멤버변수에서 탐색 3. super.변수명을 지정했을 경우 부모의 멤버변수에서 탐색 class 할아버지 { String name2 = "할아버지"; } class 아버지 extends 할아버지 { String name = "아버지"; } class 나 extends 아버지 { String name = "나"; public void..
상속 class 서브클래스명 extends 슈퍼클래스명 {} 슈퍼 클래스의 멤버(멤버변수, 메서드)를 서브 클래스가 물려 받는 것! - 중복 코드 사용 방지, 유지보수에 용이 - private 접근제한자 적용 시 상속 대상에서 제외된다. - 생성자는 상속되지 않는다. - 자바는 단일 상속만 지원한다. 메서드 오버라이딩 상속받은 메서드를 서브클래스에스 재정의하는 것! - 서브클래스에서 오버라이딩 수행 후에는 슈퍼클래스의 메서드는 은닉된다. public class Px1 { public static void main(String[] args) { Dog a1 = new Dog(); a1.name = "바둑"; a1.age = 3; a1.Cry();// 멍!, 바둑 : 3 Ham a2 = new Ham(); ..
콘솔 창에 직접 값을 입력할 수 있고 출력이 가능하다. import java.util.Scanner; public class scan1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String name; int score; name = sc.next(); score = sc.nextInt(); System.out.println(name +" : "+ score); } }
싱글톤 static으로 객체의 인스턴스가 한 개만 생성되는 디자인 패턴 인스턴스(객체) 가 절대적으로 한 개만 존재하는 것을 보장하고 싶을 때 사용 장점 메모리 방지 낭비 전역 인스턴스이기 때문에 다른 클래스의 인스턴스들이 데이터 공유하기 쉬움 안드로이드의 경우 주요 클래스들을 전달하기 번거로운데 싱클톤 클래스로 어디서나 접근하도록 설계 문제점 너무 많은 데이터를 공유시키면 유지보수와 테스트가 어려움(결합도가 높아지기 때문) 멀티쓰레드 환경에서 동기화처리를 안하면 인스턴스가 두 개 생성될 수 있음 public class Px6 { public static void main(String[] args) { Normal n1 = new Normal(); Normal n2 = new Normal(); Syste..
static은 클래스가 로딩될 때 메모리에 로딩 Heap 공간이 아닌 Method area란 공유영역에 변수가 생성되어 모든 인스턴스가 하나의 변수를 공유 public class Qx1 { public static void main(String[] args) { EmployeeNo e1 = new EmployeeNo("김"); EmployeeNo e2 = new EmployeeNo("이"); EmployeeNo e3 = new EmployeeNo("박"); EmployeeNo e4 = new EmployeeNo("조"); e1.empInfo();// 103. 김 e2.empInfo();// 106. 이 e3.empInfo();// 109. 박 e4.empInfo();// 112. 조 } } class E..