728x90
반응형
오늘 배운 내용은 클래스 생성자
계속 집에서 듣느라 좀 많이 지친다
일단 바로 정리한것부터 써보면
/*
* 1. 메모리 저장 장소(구조) page 261
* ====================================
* Method영역 => .class, method, static
* ====================================
* Stack => 지역변수, 매개변수 => 관리 (메모리)
* ====================================
* Heap => new 이용해서 저장 (인스턴스 변수)
* ====================================
* class A
* {
* String name; // Heap
* A(String name) // Stack
* {
* this.name (heap에 저장된 name)
* name (지역변수)
* }
* => 지역변수, 매개변수가 우선순위
* }
* this => A클래스 자신의 객체명 (모든 클래스가 가지고 있다)
*
* page 277~278
* 1. 클래스를 설계 할때 - 모든 객체가 공통으로 사용하는 변수 => static
* 예)
* 축구 => 연습 (인스턴스)
* => 실제 (static)
* =====> static 공간은 프로그램에서 1개만 존재
* instance공간 => 따라 배치 ======> 클래스한개를 만들고 여러개를 저장
* 2. static 변수는 new를 사용해서 메모리를 할당할 필요가 없다 (시스템에 의해서 자동 메모리 할당)
* class A
* {
* static int a=10;
* public void display()
* {
* System.out.println("a="+a)
* }
* }
* class B
* {
* public void display()
* {
* System.out.println("a="+A.a)
* }
* }
* 3. static 메소드는 인스턴스 변수를 사용할 수 없다 (new를 이용해서 메모리 저장후에 사용)
*
* page 283
* 오버로딩
* => 한개의 메소드명으로 여러개의 기능 수행
* => 조건
* 1. 한개 클래스안에서 만들어 진다
* 2. 메소드명이 동일
* 3. 매개변수의 갯수나 데이터형이 다르다
* 4. 리턴형은 관계가 없다
* 5. 주로 사용처-생성자
*
* page 291
* 생성자
* 역할) 인스턴스변수의 초기화
* 특징)
* 1. 클래스명과 동일
* 2. 리턴형이 없다
* 3. public 클래스명()
* 4. 생성자는 여러개를 만들어서 사용이 가능 (오버로딩)
* 5. 기본생성자 (디폴트 생성자) => 매개변수가 없는 생성자
* =================== 프로그램에서 생성자를 만들지 않은 경우 => 자동으로 컴파일러가 만들어 준다
*
* page 300
* 변수 => 초기값을 설정 (시작)
* 예) 비행기 => 좌표
* 페이지 지정 => page=1
* = 명시적 초기화 => page=1
* = 초기화 블록
* = 생성자
*
* class A
* {
* int a=10;
* a=100;
* => 구현 (X)
* =====================
* {
* => 구현
* }
* A()
* {
* => 구현
* }
* ======================
* void method()
* {
* => 구현
* }
* }
*
* 순서
* 1. 명시적 초기화 int a=10;
* 2. 초기화 블럭
* {
* a=100;
* }
* 3. 생성자()
* {
* a=200;
* }
* 접근지정어
* private : 자신의 클래스에서만 접근이 가능 (데이터를 은닉화)
* default : 같은 패키지에서만 사용이 가능
* ========(폴더)
* protected : 같은 패키지와 상속받은 클래스 패키지에서 사용이 가능
* public : 공개 (모든 클래스에서 사용이 가능)
* ===============================================
* class, 생성자, 메소드 : 다른 클래스 통신 => public
* 인스턴스변수 :
*
*/
public class 정리_20210113 {
int a=10; // 메모리에 아직 저장이 안된 상태
//가변 매개변수 (...) // 사용자가 매개변수를 몇개 넣을지 모를때 ==> checkbox
public void display(Object ...str)// Object 쓰면 모든 데이터형 다 사용 할 수 있음
{
for(Object s:str)
{
System.out.println(s);
}
}
public static void main(String[] args) {
정리_20210113 aa = new 정리_20210113(); //a변수가 저장된다.
System.out.println("a="+aa.a);
aa.display("a","b","c");
aa.display("a","b","c","d");
}
}
.
이렇다...
Class Method와 Instance Method의 차이점을 구분해보자면
일단 가장 단순하게 class method들은 static이 붙고, instance method들은 붙지 않는다.
class method는 매개변수만으로 작업이 가능한데, instance method는 반드시 instance를 생성하고 호출이 가능하다.
그 다음은 오버로딩이다.
: 1
728x90
반응형
'programming > Gukbi' 카테고리의 다른 글
국비 교육 16일차 (0) | 2021.01.15 |
---|---|
국비 교육 15일차 - 객체지향프로그램 (0) | 2021.01.14 |
국비 교육 13일차 - Class method (0) | 2021.01.12 |
국비 교육 12일차 - Class 변수 (0) | 2021.01.11 |
국비 교육 11일차 - Method (0) | 2021.01.10 |