Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- mco
- Java
- 주식
- 주린이
- 금리인하
- 알고리즘
- 금리인상
- FCF
- 오버라이딩
- XLF
- 접근제어자
- 다형성
- 백준
- StringBuffer
- 미국주식
- 기업분석
- 제태크
- 객체지향
- S&P500
- javascript
- 현금흐름표
- 프로그래머스
- 잉여현금흐름
- object
- 무디스
- 그리디 알고리즘
- 인플레이션
- 자바
- etf
- 배당성장
Archives
- Today
- Total
오늘의하루
[JAVA 공부 6일차] static, final, abstract, 접근 제어자 알아보기 본문
1. static
class staticTest{
static int width; // 클래스(static) 변수
static int height; // 클래스(static) 변수
static { // 클래스 초기화 블록 (복잡)
width = 100;
height = 200;
}
static int max (int a, int b){ // 클래스(static) 매서드
return a > b ? a : b;
}
}
만약 이런 클래스가 있다면 여기 있는 모든 멤버는 인스턴스를 생성하지 않고도 사용할 수 있습니다.
static의 경우 파일이 실행될 때 메모리에 올라가며 몇 개의 인스턴스를 생성하더라도 최초 1회만 초기화됩니다.
static은 인스턴스 멤버에만 사용할 수 있습니다.
2. final
final class FinalTest{
final int Max_size = 10;
final int Max(){
final int lv = Max_size;
return lv;
}
}
- final이 클래스 앞에 있다면 이 클래스는 부모 클래스가 될 수 없습니다.
- final이 변수 타입 앞에 있다면 이 변수는 상수가 되어 변경이 불가능합니다.
- final이 메서드 앞에 있다면 이 매머드는 오버 라이딩이 불가능합니다.
3. abstract
abstract class AbstractTest{
abstract void func();
}
- abstract가 클래스 앞에 있다면 이 클래스 내부에 추상 메서드가 있다는 걸 의미합니다.
- 추상 클래스라고 부른다.
- abstract가 메서드 앞에 있다면 선언 부만 작성되고 구현부가 작성되지 않은 미완성 메서드를 의미합니다.
- 추상 매서드라고 부른다.
class main{
AbstractTest test = new AbstractTest(); 💥 에러!!
}
abstract class AbstractTest{
abstract void func();
}
추상 클래스는 미완성된 클래스이기 때문에 인스턴스를 생성할 수 없다.
이렇게 미완성된 클래스를 왜 만드는지 아직은 배우지 않았지만 추상 클래스를 사용하는 방법은 다른 클래스에서 상속을 받아 완전한 클래스로 만든 후 사용할 수 있다.
4. 접근 제어자
- private : 선언된 클래스 내에서만 사용이 가능합니다.
- default : 선언된 패키지 내에서만 사용이 가능합니다.
- protected : 선언된 패키지 내에서 사용이 가능하며 다른 패키지의 첫 번째 자식 클래스에만 사용이 가능합니다.
- public : 제약 조건 없이 어디서나 사용이 가능합니다.
접근 제어자는 이름처럼 무언가에 접근할 수 있는지 없는지를 알려줍니다.
클래스 앞에 붙일 수 있는 접근 제어자 알아보기
public class {...} // ok
default class {...} // ok
- default의 경우 생략이 가능합니다.
protected class {...} // 💥Error
private class {...} // 💥Error
클래스 외에 인스턴스 멤버에는 4가지 접근제어자 모두 사용이 가능합니다.
'JAVA' 카테고리의 다른 글
[JAVA] 객체지향 2편 제어자 다형성 (0) | 2022.08.02 |
---|---|
[JAVA] 객체지향 2편 (0) | 2022.08.01 |
[JAVA 공부 6일차] 객체지향 Part 4 (0) | 2022.07.27 |
[JAVA 공부 5일차] 객체지향 Part 3 (0) | 2022.07.27 |
[JAVA 복습] 객체지향, 배열, 연산 (0) | 2022.07.26 |
Comments