<제어문>
1.break문
- switch블럭 또는 loop블럭(for,while,do~while)내에서 사용하며
해당 영역을 빠져나가는 역할.
2.continue문
- 반드시 loop영역내에서만 사용!!
- loop영역의 끝괄호 역할!!
for: 증감자 ---> 조건식
while: 조건식
do~while: 조건식
<객체지향의 특징> 자바는 OOP다!! (Object Oriented Programming)
1. 캡슐화
- 클래스에 필드와 메소드를 묶어두는 것.
- 정보은닉(private)
- 모듈성
2. 상속 ★
- 부모클래스가 갖는 속성(필드)과 기능(메소드)을 자식에게 물려주는 것.
- 관련키워드: extends
-----> class 자식 extends 상속받고자하는 부모클래스명
is a 관계!!
자식은 부모다!!
===> 자식은 부모로 형변환이 가능하다!!
- 단일상속이 기본.(extends 뒤에 한 개의 부모클래스명만 위치)
java.lang.Object 부모클래스, 상위클래스, super클래스
java.lang.String 자식클래스, 하위클래스, sub클래스
※Object는 자바에서 최상위클래스!!
===>기본 import java.lang.*;
class My ===> 기본 extends Object
{
}
3. 다형성 ★★
<접근지정자> Access Control
1. public - 서로 다른 패키지에서도 접근 가능.
2. protected - 서로 같은 패키지에서 접근 가능.
(서로 다른 패키지라도 상속관계에 있는 자식클래스에서는 접근가능)
3. default(생략) - 서로 같은 패키지에서 접근 가능.
4. private - 같은 클래스내에서만 접근 가능.
(같은 클래스내의 멤버끼리만 호출가능 - 외부클래스에서는 호출불가, 정보은닉)
[접근지정자 (public,생략)] class 클래스명{
[접근지정자 4개] 자료형 변수명;
[접근지정자 4개] 리턴형 메소드명(){
}
}
<생성자> Constructor
- 새로운 객체를 생성하기 위해서 초기화해주는 메소드.
규칙) 1번,2번을 만족하는 메소드를 생성자라고 함.
1. 생성자의 이름은 반드시 클래스명과 일치(대소문자 일치)
2. 리턴자료형을 명시하지 않는다. (void조차 X)
----> 1,2: 일반 메소드와의 차이점
3. 객체생성시 자동으로 호출.
4. 클래스내에 생성자가 하나도 없다면
자바컴파일러가 컴파일시 자동으로 (기본생성자를) 추가.
※ 주의) 단, 클래스내에 한개 이상의 생성자가 정의되어 있다면
컴파일러는 소스코드에 관여하지 않는다!!
class Abc{
int su;
My my;
Abc(){//기본생성자(매개변수 비어있는 생성자) ----> 초기화(값의 할당) 메소드
//멤버필드에 대한 초기화 작업
su=10;
my = new My();
//선행작업
}
Abc(String name){//오버로딩 생성자
}
ABc(int age){
//---> 에러발생: 클래스명과 일치하지 않으므로 일반메소드!! ---> 리턴자료형을 명시해야함.
}
void hello(){
}
}
------------------------------------------------------------------------------
Abc a = new Abc();
--- ---------
동적메모리할당 키워드 기본생성자 호출!!
a.hello();
Abc a2 = new Abc("홍길동");
--------------
오버로딩 생성자 호출!!
a2.hello();
<this> 자기참조 연산자
===> 현재클래스를 가르키는 레퍼런스변수(참조변수)!!
===> 보통은 생략함
1. 메소드 내에서 사용.
2. 객체생성자내에서 다른 생성자를 호출시 사용.
3. 매개변수와 멤버변수(필드)를 구분하기 위해
멤버변수앞에 this.을 붙여 사용.
형식)
this.필드명
this.메소드명();
this();//생성자 호출
참고)
super.필드명
super.메소드명();
super();//부모클래스의 생성자 호출
class A{
int su;//int su=0;
String str;//String str=null;
A(){//기본생성자
this("자바");
}
A(String str){//오버로딩 생성자
this.str = str;
//멤버변수 지역변수
}
void hello()
{
System.out.println("STR="+ str);
System.out.println(su);
System.out.println(this.su);
gildong(); ===> this.gildong();
}
void gildong(){
}
}
'JAVA' 카테고리의 다른 글
#6 문자열 내용 비교, 이름(추가,검색,수정,삭제), String Test (0) | 2018.11.24 |
---|---|
#5 인터페이스, final, 추상클래스, 배열, 2차원 배열 (0) | 2018.11.23 |
#3 자바 제어문, 클래스&메소드 복습, Escape Character, byte 단위 입력, 라인단위 입력 (0) | 2018.11.22 |
#2 자바 print, 구성, 조건문, 반복문 (0) | 2018.11.20 |
자바 환경설정 (0) | 2018.11.19 |