자바의 특징 3가지
1. 캡슐화(클래스): user_DataType을 선언하는 자료형
클래스의 멤버 (필드, 멤버 변수, 생성자, 멤버 메소드)
객체=인스턴스=오브젝트(클래스로 생성된 각각의 것들)
static 멤버 : 선언과 동시에 static 영역에 bind가 되면서 클래스.멤버로 바로 실행된다. (binding)
non-static 멤버 : 생성된 주소가 없기 때문에 new 연산자를 이용해서 객체가 생성될 때 호출할 주소가 대입되어
대입된 주소를 통해 호출되어 진다.
클래스명 클래스변수 = new 클래스명();
Score s1=new Score();
Score s2=new Score();
Score s3=new Score();
클래스변수.멤버로 호출한다. 클래스변수=인스턴스
<생성자란?>
가. 클래스 이름과 동일하되 반환형은 없고 자바에서는 public을 원칙으로 사용한다.
나. 생성자는 overload 할 수 있다.
다. 생성자는 this()라는 내부 키워드를 사용하여 생성자끼리 호출이 가능하다.
라. 생성자는 객체를 통해 명시호출 할 수 없고 객체를 생성할 때 자동으로 한 번만 호출된다.
My m=new My();
m.My(100); ----> (X)
My m=new My(100); ----> (X)
마. 생성자를 명시하지 않으면 default 생성자가 호출되고 하나라도 명시하면 생성된 객체의 매개인자에 따라
맵핑된 생성자가 호출된다. (-> 생성하면 default는 생성되지 않는다는 것임)
new My(); -> public My() {}
new My(10); -> public My(int a) {}
new My(10, 10); -> public My(int a, int b) {}
바. 생성자는 상속되지 않는다. 상속시 선조의 생성자는 super()라는 키워드를 사용한다.
사. 생성자의 목적은 멤버변수의 초기화에 있다.
2. 상속: 클래스의 기능을 선조와 후손의 개념을 이용해서 기본 클래스에서 확장해서 사용
3. 다형성(추상화): 상속시 선조에 따른 후손 클래스를 다양한 형태를 가진 결과를 유도하는 것
===========================================================================================
[클래스Class] : 사용자 자료형을 말한다.
- 구성: 멤버필드(public static final ...PI),
생성자, 멤버변수, 멤버 메소드를 가진다.
[형식]
접근지정자(public, private 등) class UserName {
구성 ...
}
ex) int a, double d; => 자주 쓰는 두 개를 Test라는 하나의 이름으로 묶을 수 없을까? -> 클래스의 키워드
<선언>
public class Test {
int a;
double d;
}
<사용은 선언된 클래스 자료형을 생성(new)해서 사용하도록 한다>
heap: 자유영역(동적할당) 공간, 그림판 백그라운드
new를 만나면 동적 할당 공간에 메모리를 실행하고 실행이 끝나면 GC(가비지컬렉터)가 메모리를 자동 소거시킨다.
stack&static: 정적공간 -> class(자바에서 씀), struct, union 선언하면 주소(&)를 관리하는 곳
static(자바에서 씀)
호출하면 Bind를 Binding 한다.
static, heap, stack;
1. Test t1=new Test(); // Test라는 자료형의 변수만큼 메모리를 확보한다.
2. 확보된 메모리의 주소를 이용해서 멤버에 값을 전달한다.
t1.a=100;
t1.d=90.9;
- 값 전달은 은닉된 멤버변수(private)에게 오픈된 메서드(public)가 값을
전달 및 변경(void setXX)하고 리턴받는 구조(data type getXX)를 가진다.
setter & getter 라고 부른다.
===========================================================================================
'BigData > JAVA' 카테고리의 다른 글
[Day7] 2차원 배열 (0) | 2015.03.05 |
---|---|
[Day6] 배열 (0) | 2015.03.05 |
[Day5] 반복문 (0) | 2015.03.05 |
[Day4] 조건문 (0) | 2015.03.05 |
[Day3] JVM (Java Virtual Machine)의 메모리 (0) | 2015.03.05 |