일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- html multimedia
- html5 new tag
- #자바상속#자바이즈어#is~a
- #2차원배열
- html object
- #binary
- border-box
- #성적관리프로그램
- #1차원배열
- #다차원포인터
- hyperledger transaction
- mac terminal command
- html youtube
- 토큰경제
- html charset
- #C++ 연산자함수오버로딩
- docker example
- #android activity
- git flow
- #CallByAddress
- 하이퍼레저패브릭
- #3차원배열
- html code
- html plug-in
- relative path
- html video
- #JAVASCRIPT
- #bubbleSort
- html id
- #C++ has~a
- Today
- Total
A sentimental robot
The elements of "Class" 본문
<Class의 구성요소>
필드( field )
-
클래스 안에 존재하는 데이터, 객체를 사용할때 지속적으로 사용되어지는 변수
-
main함수 내에 있는 변수는 필드가 아니라 지역변수이다.
-
접근지정자를 캡슐화 하기 위해 private를 주로 사용한다.
메소드( method )
-
외부에서 내부의 필드를 사용할 수 있게 해주는 기능 ( 연결 시켜주는 기능 )
1) instance method : object를 생성해야만 생성되는 메소드
2) static method : 객체와 무관하게 미리 만들어지는 메소드, 클래스를 통틀어서 오직 한 개다. 접근지정자로 public를 주로 사용한 다.ex) public static void main
생성자( constructor )
1) new 연산자에 의해 객체 생성 시 자동호출 되어지는 함수
(즉, 생성자를 호출하지 못할 경우, 객체가 등록이 안된다.)
2) Default Constructor ( 기본 생성자 )
- 모든 클래스는 생성자가 반드시 존재하며 하나 이상 가질 수 있다.
- 생성자 선언을 생략하면 컴파일러는 기본 생성자 제공
3) 명시적으로 생성자를 만들 경우, default 생성자는 존재하지 않는다.
4) 생성자를 통해 사용자는 초기값 없이 선언된 필드를 객체가 생성될 때 기본값으로 자동 설정( 쓰레기값 방지 )
생성자의 매개값으로 초기값 설정한다.
5) 생성자 함수는 클래스 이름과 동일한 이름으로 만든다.
6) return이 없다.
7) 오버로딩( Overloading )이 가능하다.
- 동일한 함수명으로 여러개의 함수를 만들어 사용->다형성
- 조건 : a. 함수의 이름이 같으면서 매개변수의 타입이 다를 경우 b. 매개변수의 갯수가 다를 경우
- 같은 기능을 하는 것끼리만 사용을 권장한다.
8) 외부에서 생성자 함수를 호출할 수 있도록 하기 위해 접근지정자를 public으로 사용한다.
import java.util.Scanner;
public class Hello2 {
int data; // field
public Hello2(int a) // 명시적으로 default 생성자 만듬
{
System.out.println("생성자야");
data = a; // 필드 초기화
}
public Hello2(){ //오버로딩!
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Hello2 hello; // reference variable
hello = new Hello2(10000); // 생성자 함수 호출
System.out.println(hello.data); // 10000 출력
Hello2 ct = new Hello2(); // 명시적으로 생성자를 만들었기 때문에 error...( )안에 int 타입 변수를 안넣어 주었기 때문에
// 이 때, overloading이 필요하다.
System.out.println(ct.data); // 초기화가 안되어 있기 때문에 0출력
}
}
public class Hello2 {
int data;
public Hello2(int a)
{
System.out.println("생성자야");
data = a;
}
public Hello2() { // 오버로딩!
data = 1000;
}
public void setData(int a) { // 입력함수(Setter)
data = a;
}
public int getData() { // 값 리턴 함수(Getter)
return data;
}
public static void main(String[] ar) {
Hello2 hello;
Hello2 ct = new Hello2();
System.out.println(ct.getData()); //생성자에서 초기화 돼서 1000출력
ct.setData(3000);
System.out.println(ct.getData()); // 3000출력
}
}
'Java' 카테고리의 다른 글
Object oriented style exercise (0) | 2017.12.28 |
---|---|
Object-oriented style score management (0) | 2017.12.28 |
Score Management[Three dimensional] (0) | 2017.12.28 |
Score Management[Two dimensional] (0) | 2017.12.28 |
String class (0) | 2017.12.28 |