전체 글

참조변수가 참조하고 있는 인스턴스 실제 타입을 알아보기 위해 사용 주로 조건문에 사용된다. instanceof의 왼쪽에는 참조변수 오른쪽에는 타입(클래스명)이 피연산자로 위치한다. 참조변수가 검사한 타입으로 형변환이 가능하면 결과는 boolean 값으로 true 아니면 false 값이 null인 참조변수는 false public static void main(String[] args) { System.out.println("hihi"); Car car = null; RedCar redCar = new RedCar(); car = redCar; //(Car)redCar 생략 if(car instanceof RedCar){ //1. 형변환이 가능한지 확인 RedCar redCar1 = (RedCar)car;..
내부 클래스 클래스 내에 선언된 클래스 → 두 클래스가 서로 긴밀한 관계에 있을 때 사용 내부 클래스 장점 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. 코드의 복잡성을 줄일 수 있다.(캡슐화) 외부에는 불필요한 클래스를 감출 수 있기 때문에 class A { //독립적인 Class ... } class B { //독립적인 Class ... } class A { //외부 클래스 ... class B { //내부 클래스 ... } ... } 내부 클래스 B는 외부 클래스 A를 제외하고는 다른 클래스에서 잘 사용되지 않아야 된다. 내부클래스의 종류와 특징 변수의 선언과 동일하게 내부클래스도 선언 위치에 따라서 구분되어 진다. (내부 클래스는 변수를 선언하는 것과 같은 위치에 선언할 수 있다...
일종의 추상클래스로 추상화 정도가 높아서 추상클래스와 다르게 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 추상메서드와 상수만 멤버로 가질 수 있다. (다른 요소들 허용x) class 말고 interface로 사용되고 접근제어자는 public 또는 default만 사용가능하다. interface 인터페이스이름 { public static final 타입_상수이름 = 값; public abstract 메서드이름(매개변수목록); } 일반적인 클래스와 다르게 인터페이스 멤버들은 제약사항이 존재한다. 모든 멤버변수는 public static final 이어야 하며, 생략이 가능하다. 모든 메서드는 public abstract 이어야 하며, 생략이 가능하다. 단 static메서드와 defau..
추상클래스 클래스가 미완성이다. → 멤버의 개수에 관계된 것이 아니라, 미완성 메서드(추상 메서드)를 포함하고 있다는 의미 💡 추상 클래스로 인스턴스 생성할 수 없다. 추상 클래스는 상속을 통해서 자식 클래스에 의해서만 완성된다. 추상 클래스로 어떤 시스템의 전반적인 틀을 잡아주고 상속할 때 자식 클래스에서 완성시키면 훨씬 효율적이다. 클래스 앞에 ‘abstract’를 붙여준다. (abstract class 클래스이름{}) 클래스 선언부 ‘abstract’를 보고 추상메서드가 있구나 상속을 통해서 구현해야 되구나 쉽게 알 수 있다. 추상 클래스는 추상 메서드를 포함하고 있는 것을 제외하고는 일반 클래스와 동일함(생성자가 있고 멤버변수와 메서드도 가질 수 있다.) 추상메서드 선언부만 작성하고 구현부는 작성..
클래스, 변수, 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능하다. 접근 제어자는 4가지 중 하나만 선택해서 사용할 수 있다. 제어자들 간의 순서는 관계없지만 주로 접근 제어자를 제일 왼쪽에 놓는다. 제어자의 종류 접근 제어자: public, protected, (default), private 그 외: static, final, abstract, native, transient, synchronized, volatile, stricffp static, final, abstract만 보통 자주 사용된다. static - 클래스의, 공통적인 static이 붙은 멤버변수(클래스 변수)처럼 인스턴스에 관계없이 같은 값을 같는다. → ..
uhanuu
몸뚱아리부터 마음가짐까지