##Java##
★ 접근제어자 ★(보안성을 위해 사용=접근권한)
★ public ★ 전부다 가능(import만 해도 호출 가능)
★ protected ★전부다 가능(다른 패키지,다른 클래스인데 상속관계가 아니면 불가능)
(package 상속관계에서는 무조건 가능 - extends+import 해야함 , import만으로는 불가능)
★ default ★같은 패키지내에서는 다른 클래스라도 가능(같은 package영역내에서 사용가능)
★ private ★ 같은 패키지 같은 클래스만 가능(같은 class 영역 내에서 사용가능)
★ void ★는 반환형이 없기 때문에 출력문을 써서 메서드 호출을 하면 출력문을 출력 할 수 있지만, 리턴값이 있는 메서드는 선언부와 리턴형의 타입을 맞춰서 변수에 메서드 리턴값을 넣어서 별도로 출력 해주면 된다.
★ this() . super() ★
둘다 생성자에서만 가능
★ this() ★
생성자 안에서 매개변수 형태와 같은애를 호출해서 사용가능
ex) Car(int a){
this(a,"blue");
}
-----------------------
class B{
void m(){
b(this);
}
} -> new B().m() 호출하면 this는 B의 주소를 지칭
자기를 호출한애의 주소
(현재 소속된 클래스라 보면 됨)
★ super() ★
부모생성자를 호출하는 소스코드
super()선언 안해도 extends시 super()가 생략, 근데 선언 하면 사라짐
★ 메서드 오버로딩 ★
하나의 클래스에 이름이 같은 메서드를 여러개 선언하는 경우
구분은 매개변수의 개수와 자료형
★ 메서드 오버라이딩 ★
메소드이름 , 매개변수개수자료형 , 리턴형 전부 일치해야함.
★ static / final ★
★ static ★
★ final ★
클래스앞,메서드앞,변수앞
클래스:상속금지
메서드:오버라이딩금지
변수:재할당금지
(할당은 가능하지만 재할당은XX)
(할당은 가급적이면 생성자에서 하기)
★ abstract vs interface ★
차이는 멤버변수의 사용유무
interface는 (static final) 상수화가 되기 때문
interface A{
int a=100 -> static final int a=100
void b(); -> public abstrace void b()
}
class B implements A ->인터페이스의 추상메서드를 여기서 구현하겠다
객체생성안됨!
전역변수의 개념
멤버변수앞 , 메서드앞
객체종속X 클래스변수O
객체생성필요없이 바로 클래스명으로 호출 가능.
★ 내부클래스 ★
★1내부멤버클래스★
★2.내부로컬클래스★
lass A{
class B{} //내부멤버클래스
void a(){
class C{} //내부로컬클래스
}
void b(){
class C{} //내부로컬클래스
}
}
★3.내부무명클래스★
class A{
void a(){
Object o = new Object(){};
Object o2 = new Object(){}
}
}
new 클래스명(){ 선언부 };
컴파일 하면 클래스명$1.class 나옴
단점 : 내부무명이라서 재사용이 안되서 내부클래스는 잘 안씀.
내부클래스랑 외부클래스 변수명이 겹칠때는 super가 아니라 (외부클래스.this) 써야함
외부에서 내부 부를때는 외부클래스.this
내부에서 외부 부르는건 바로 호출
스태틱 내무 멤버를 가질수 있는건 스태틱 내부 클래스만 가능
자바 arrayList 공부, 사용이유 (0) | 2014.12.14 |
---|---|
자바스크립트 기초 필기내용 (0) | 2014.12.11 |
오라클 공부중 기초 (0) | 2014.12.11 |
자바 arrayList 예제 (0) | 2014.12.04 |
자바 초급 종합문제 (0) | 2014.12.04 |