접근 지정자

맴버 및 생성자의 접근 지정자

public, protected ,default(package), private

사용범위) public > protected > default > private

 

private

자신의 클래스 내부에서만 사용할 수 있는 접근 지정자

 

default

같은 패키지 안의 모든 클래스에서 사용할 수 있음

 

protected

같은 패키지의 모든 클래스에서 사용할 수 있고, 다른 패키지의 자식 클래스 안에서 사용할 수 있다.

 

public 

동일 패키지의 모든 클래스와 다른 패키지의 모든 클래스에도 접근할 수 있다.

 

static 제어자

static이 붙어 있는 멤버를 정적 멤버라 한다.

 

정적 멤버의 가장 큰 특닝은 객체의 생성 없이 "클래스명.멤버명"만으로 바로 사용할 수 있다는 것.

 

특징: 정적 필드는 객체 간 공유 변수의 성질이 있다.

 

static이 붙어 있는 메서드도 동일하다.

static이 붙으면 해당 메서드를 객체 생성 없이 사용 가능하다.

package study;
class A3{
    void abc(){
        System.out.println("instance 메서드");
    }
    static void bcd(){
        System.out.println("static 메서드");
    }
}
public class StaticMethod {
    public static void main(String[] args) {

        //None static
        A3 a1 = new A3();
        a1.abc();

        //static
        A3.bcd();

    }
}

 

정적 메서드 내부에는 정적 멤버만 올 수 있으며,

정적 메서드 내부에서는 this 키워드를 사용할 수 없다.

'Web BackEnd > TIL Memo' 카테고리의 다른 글

이너 클래스와 이너 인터페이스  (0) 2022.01.05
인터페이스  (0) 2022.01.03
자바 제어자2  (0) 2022.01.02
가변 길이 배열 입력매개변수 매서드  (0) 2021.12.31
클래스와 객체의 개념  (0) 2021.12.29

자료형의 말줄임표를 이용해 가변적인 길이의 값을 받을 수 있다.

 

리턴 타입 메서드명 (자료형 ... 참조 변수명){

 

}

 


public class FlexibleSizeArrayArgument {
    public static void main(String[] args) {
        method1(1, 2);
        method1(1, 2, 3);
        method1();

        method2("안녕", "자바");
        method2("파이썬", "C++", "루비");
        method2();
    }

    public static void method1(int... values) {
        System.out.println(values.length);

        for(int k: values){
            System.out.println(k+" ");
        }
    }

    public static void method2(String ...values){
        System.out.println(values.length);

        for(String k: values){
            System.out.println(k+" ");
        }
    }
}

'Web BackEnd > TIL Memo' 카테고리의 다른 글

이너 클래스와 이너 인터페이스  (0) 2022.01.05
인터페이스  (0) 2022.01.03
자바 제어자2  (0) 2022.01.02
자바 제어자  (0) 2022.01.01
클래스와 객체의 개념  (0) 2021.12.29

객체와 클래스

객체

사용할 수 있는 실체

 

클래스

객체를 만들기 위한 설계도

다양한 자료형의 데이터를 하나로 묶어 관리할 수 있고, 데이터를 처리하는 다양한 기능까지 함께 관리하는 문법 요소

 


절차지향과 객체지향

절차지향형 프로그래밍 (PP: Procedural Programming)

순서에 맞춰 단계적으로 실행하도록 명령어를 나열하는 방식

 

객체지향형 프로그래밍 (OOP: Object-Oriented Programming)

프로그램을 객체 단위로 수행한다.

프로그램에서 사용되는 객체를 생성하고, 각 객체에 포함된 데이터와 기능을 상호 호출함으로써 프로그램을 구성하는 방식

자바에서 제공하는 객체지향 문법 요소

클래스 (일반 클래스, 추상클래스)

인터페이스

객체 생성에 따른 메모리 구조

객체 생성 코드

Student siun = new Student();

 

* new는 생성자로 만든 객체를 힙 메모리에 저장.

 

메모리

 

인스턴스 메서드 영역

------------------------         ----------------------------            -----(100)-----------------------

  메서드    Student    l        siun(100)                 l         (필드,메서드,이너클래스)

'Web BackEnd > TIL Memo' 카테고리의 다른 글

이너 클래스와 이너 인터페이스  (0) 2022.01.05
인터페이스  (0) 2022.01.03
자바 제어자2  (0) 2022.01.02
자바 제어자  (0) 2022.01.01
가변 길이 배열 입력매개변수 매서드  (0) 2021.12.31

+ Recent posts