형변환


부모클래스타입으로 자식객체를 참조했을때는 부모클래스에 존재하는 멤버변수와 멤버함수만 접근이 가능,자식영역에만 존재하는 멤버에 접근불가


자식클래스로의 형변환을 통해 자식에만 존재하는 멤버에 접근가능




* instanceof 연산자를 사용한다. *


[참조변수] instanceof [클래스명]   ->  참조변수가 실제 참조하고 있는 객체가 클래스명 타입의 변수로 참조가 가능하면 true 아님 false







추상클래스


추상메소드를 가지고있는 클래스

자바에서의 추상메소드는 abstract 키워드를 붙여준다.


(부모클래스일수록 개념이 추상적이고, 특정 기능이 어떻게 구현될지 애매하다.) 


추상클래스는 상속받으면 추상메소드를 구현해야만 하는 의무를 가지게 됨.

(추상메소드를 구현하던, 자기 자신이 추상클래스가 되던)


추상클래스는 미완성의 설계도 이기 때문에 객체를 만들 수 없을(객체화 할 수 없음)




내부클래스


클래스 안에 다른 클래스를 정의




//바깥 클래스

class A {

A(){System.out.println("A 객체가 생성됨");}

/**인스턴스 멤버 클래스**/

class B {

B(){System.out.println("B 객체가 생성됨");}

int field1;

//static int field2;

void method1(){}

//static void method2() {}

}

//정적 멤버 클래스

static class C {

C() {System.out.println("C 객체가 생성됨");}

int field1;

static int field2;

void method1(){}

static void method2(){}

}

void method(){

//로컬 클래스

class D {

D(){System.out.println("D 객체가 생성됨");}

int field1;

void method1(){}

}

D d = new D();

d.field1 = 3;

d.method1();

}

} 

 


public class Main {

public static void main(String[] args) {

A a = new A();

//인스턴스 멤버 클래스 객체 생성

A.B b = a.new B();

b.field1 = 3;

b.method1();

//정적 멤버 클래스 객체 생성

A.C c = new A.C();

c.field1 = 3;

c.method1();

A.C.field2 = 3;

A.C.method2();

//로컬 클래스 객체 생성을 위한 메소드 호출

a.method();

}

}







무명 클래스(anonymous class)


클래스 몸체는 정의되지만, 이름은 없는 클래스

객체를 생성하면서 클래스를 정의하는 방법(1회성 클래스 구현)


interface RemoteController

{

void turnOn();

void turnOff();

}

class TVRemoteController implements RemoteController{


@Override

public void turnOn() {

}


@Override

public void turnOff() {

}

}


public class AnnonymousTest {

public static void main(String[] args) {

RemoteController rc = new TVRemoteController();

}

}




인터페이스 타입의 참조변수는 자신 인터페이스를 implements한 클래스의 객체를 참조할 수 있음.


대신에 인터페이스 타입의 참조변수로 객체를 참조했을때는 인터페이스에 존재하는 메소드만 호출이 가능.









' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day16 패키지  (0) 2016.04.04
Day15 전략패턴  (0) 2016.04.01
Day13 상속  (0) 2016.03.30
Day12 변수  (0) 2016.03.29
Day11  (0) 2016.03.28

<변수타입>



* 변수의 이름은 식별자(identifier)의 일종

* 변수 이름의 규칙

~ 식별자는 유니코드 문자와 숫자의 조합                  /* 유니코드는 16비트 */


* 클래스명 : 대문자 

* 변수명, 메소드명 : 소문자로 시작되어 2번째 단어의 첫 글자는 대문자로 한다.


기초형 : 정수 -> int // 실수 -> double

Alt + ↕ = 문장이동 // Ctrl + D = 문장삭제





관계연산의 결과물은 항상 boolean타입의 값 : true / false


논리 연산자는 참/거짓간의 연산


연산자의 우선 순위

(왼쪽 -> 오른쪽) // 단항,부호,대입은 (왼쪽 <- 오른쪽)

10101 11010

10000 <- and 연산결과

11111 <- or 연산결과

01111 <- xor 연산결과  :: 서로 같으면 거짓, 다르면 참


형변환 : 어떤 자료형의 값을 다른 자료형의 값으로 바꾸어 주는 연산

명시적 형변환 // 암시적 형변환

확대 형변환 // 축소 형변환



3가지의 제어구조

순차구조 // 선택구조 // 반복구조



double length = 2 * radius * pie; 

 double area = radius * radius * pie;


관례적으로 심볼릭 상수의 변수명은 모두 대문자 pi -> PI


' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day 06 复习  (0) 2016.03.21
Day 05 if/while  (0) 2016.03.18
Day 03 영역  (0) 2016.03.16
Day 02 메소드  (0) 2016.03.15
Day 01 开始  (0) 2016.03.14

+ Recent posts