접근 지정자 ( 제어자 ) :
객체지향 프로그래밍은 캡슐화가 중요 합니다.
클래스 외부에서 클래스 내부로 쉽게 접근하지 못하게 하므로써 클래스정보를 보호할수 있습니다.
이처럼 클래스와 클래스의 멤버 ( 변수 , 메서드 ) 에 대한 접근 정도를 지정할때 사용하는 것이
접근 지정자 입니다.
자바에서 많이 사용 하는 접근 지정자는 아래와 같습니다.
수정자 클래스 내부 같은 패키지 서브클래스 다른클래스
public O O O O // 오픈되어있다.
protected O O O X
default O O X X // 접근지정자를 안쓰는것이 디폴트이다.
private O X X X // 보호가 제일 강함 (개인이사용)
멤버 변수는 private 을 사용 public 은 메서드로 사용.
( 직접접근하지 못하게 변수를 private 선언해서 은닉화 시키고 메서드는 public을 사용해서 메서드로 접근할수 있게한다.)
클래스변수 ( c v )
: 클래스 변수는 static 키워드를 사용하여 선언하고 전역변수의 개념을 포함하고있습니다.
전역 변수라는 의미는 객체가 메모리에서 완전히 사라지기 전까지
여러개의 객체 참조 변수에서 값을 공유할수 있습니다.
그렇기 때문에 클래스 변수는 객체 사이의 통신이나 공용데이터를 처리할때 사용하고 ,
객체 참조 변수 없이 직접 클래스 이름을 통해 접근해서 사용할수있습니다.
클래스 변수는 같은 클래스의 인스턴스 변수에서 값을 공유합니다 또한
'클래스. 클래스 변수이름' 으로 값을 불러올수있습니다.
Ex ] Math.random(); // Math 가 클래스 random이 클래스 변수이름
중단변수
: 중단변수는 final 키워드를 사용해 변수를 상수로 만드는 것을 의미합니다.
변수를 선언할때 final 키워드를 변수앞에 붙여서 사용합니다.
중단 변수는 한번만 초기화 될수 있습니다.
값을 변경할 수 없습니다. 상수는 변하지 않는 값이기 때문에
변수를 상수로 만든다는 의미는 값을 변경할 수 없다는 뜻입니다.
중단 변수는 관례상 대문자를 사용합니다.
멤버변수
: 자바의 멤버 변수 는 4가지 종류가 있습니다.
객체 속성변수와 객체 참조 변수는 객체에서 사용하는 객체 변수 입니다.
클래스 변수는 전역 변수의 역할을 하면 중단변수는 상수를 만들때 사용합니다
멤버변수
- 객체 속성 변수
- 객체 참조 변수
- 클래스 변수
- 중단 변수
멤버 변수를 선언하는 방법은 일반적인 변수 선언과 동일합니다.
멤버 변수를 초기화 하지 않으면 default 값을 갖습니다.
public int a; => 일반 멤버변수 a 선언 // 일반 멤버변수는 각각의 개념
private final int B = 7; => 상수 B 선언
protected static int c = 88; => 클래스 변수 c 선언 //static 변수는 공용의 개념
public 클래스만 main 을 가질수 있다. main을 가지고 있는 public 클래스가 있다면 public 생성불가
main 을 가지고 있지않다면 public 을 생성할수 있다.
static 메서드를 사용하기위해서는 일반 멤버변수는 쓸수 없고 static 변수로만 사용가능하다.
class StaticMethod{
static int kor;
static int eng;
int math;
static double average() {
int total = kor + eng + math;
return (total / 3.0);
}
}
위와같이 math 를 static double average 메서드로 접근하려면 일반변수로 선언된 math 이기 때문에 static 메서드에서 사용할수 없다.
유니코드 표를 활용한 원의 둘레랑 넓이 구하기 예제
public class Circle_1 {
public static void main(String[] args) {
final float PI = 3.1415f; // final 으로 선언한 변수는 상수 선언되고 값변경이 불가하다
//그리고 이건 관례 변수를 대문자로 써준다.
int r = 13;
double area = PI * r * r;
double area2 = PI * 2 * r;
System.out.printf(" 원의 넓이 = %7.3f \u33A0", area);
System.out.println();
System.out.printf(" 원의 둘레 = %7.3f \u339D", area2);
}
}
final 으로 변수를 선언했으므로 상수선언 되고 값 변경이 불가하다.
변수 선언은 대문자로 하는게 관례이다. EX] final float PI; //PI 를 대문자로 선언해준다.
cm 의 유니코드는 \u339D 로 출력하고 cm2 는 \u33A0 로 출력한다.
Method(메서드)
:메서드는 객체가 작업할 내용을 정의해 놓은 부분입니다.
기존 C,C++에서는 함수라고 부릅니다.
메서드는 Head 부분과 Body부분으로 구성됩니다.
머리부분은 메서드의 반환값 , 자료형 , 메서드 이름, 매개변수 등으로
구성되어 있고 몸체는 중괄호 ( { } ) 를 이용해 블럭으로 만듭니다.
형태
[public / protected / private ]
[abstract / final / static / synchronized ]
반환 자료형 메서드이름 ( 매개변수 , ..){
...
...
}
- abstract : 추상 메서드 선언에 사용 = > 상속과 관련됨
- final : 종단 메서드 선언에 사용 => 상속과 관련
- static : 클래스 메서드 선언에 사용
- synchronized : 쓰레드의 임계 영역 지정에 사용 //들어오지못하게 막고싶을때 사용
public static void main(String[] args){
}
- main () 메서드는 프로그램의 시작점입니다.
- public : 누구나 접근할수있음
- static : 클래스 메서드
- void : return 문으로 반환되는 값이 없음
- main( ) : 프로그램 시작점
- String[ ] args : 문자열 배열 매개변수 args 를 갖고있음.
: 메서드는 특정한 작업을 수행하는 부분이고 메서드를 실행하기 위해서는
메서드를 호출(CALL) 이라고 합니다. 메서드를 호출할때
메서드에 특정한 값을 전달하는 경우가 있습니다.
이럴때 매개변수를 사용합니다. 매개변수는 메서드에게 값을 전달하는
통로입니다.
'국비 과정 > Java' 카테고리의 다른 글
| 국비 - 0718 (오버로딩 , 오버라이딩 ,super) (0) | 2022.07.18 |
|---|---|
| 국비 - 0715 ( 생성자 , this , 상속) (0) | 2022.07.15 |
| 국비 - 0713 (가변배열 , 객체지향 , 절차지향) (0) | 2022.07.13 |
| 국비 - 0712 ( 배열 ) (0) | 2022.07.12 |
| 국비 - 0711 ( while문 , 분기문 ) (0) | 2022.07.11 |