생성자, 정적(Static) 변수, 정적 메소드, 접근 제어
작성자 정보
- 작성자 최고관리자
- 작성일
컨텐츠 정보
- 조회 347
본문
생성자와 Static 변수, 메소드
정적(static) 변수 : 여러 객체에서 공동으로 사용해야할 경우 변수 앞에 static을 사용한다. 인스턴스의 생성과 상관없이 초기화 되는 변수이며, 같은 변수명으로 하나만 선언 할 수 있다. public으로 선언된다면 어디서나 접근 가능하다.
정적(static) 메소드 : 정적 메소드도 정적 변수와 마찬가지로 여러 객체에서 사용할 경우 메소드 앞에 static을 붙여 사용한다. 특징은 정적 변수와 같다.
생성자(오버로딩) : 클래스를 사용해 객체를 생성할 때의 기본적인 동작을 설정 할 수 있다. 객체를 생성할 때 변수를 받아 특정 작업을 처리할 때 사용할 수 있거나 변수에 따라 여러가지 상황에 따라 사용하는 등 활용도가 높다. 기본적으로 생성자의 이름은 해당 클래스의 이름을 따른다.
아래는 생성자(오버로딩)을 통해 2개의 객체를 생성하고 생성된 총 객체의 숫자를 카운트(Car.getNumberOfCars) 하는 소스 코드다.
CarTest.java
접근 제어
접근 제어(access control)란 다른 클래스가 특정한 필드나 메소드에 접근하는 것을 제어하는 것이다. private나 public 등의 수식어를 필드나 메소드 앞에 붙여서 접근을 제한하게 된다. -- PowerJava 2판 p.211
private : 같은 클래스 안에서만 접근 가능
default : 같은 클래스, 같은 패키지 안에서만 접근 가능
protected : 같은 클래스, 같은 패키지, 상속받은 클래스 안에서만 접근 가능
public : 모든 클래스가 접근 가능
이 외에 default라는 접근 제어 지시자가 존재한다. 클래스 생성시 접근 제어 지시자를 지정하지 않으면 default가 된다.
정적(static) 변수 : 여러 객체에서 공동으로 사용해야할 경우 변수 앞에 static을 사용한다. 인스턴스의 생성과 상관없이 초기화 되는 변수이며, 같은 변수명으로 하나만 선언 할 수 있다. public으로 선언된다면 어디서나 접근 가능하다.
정적(static) 메소드 : 정적 메소드도 정적 변수와 마찬가지로 여러 객체에서 사용할 경우 메소드 앞에 static을 붙여 사용한다. 특징은 정적 변수와 같다.
생성자(오버로딩) : 클래스를 사용해 객체를 생성할 때의 기본적인 동작을 설정 할 수 있다. 객체를 생성할 때 변수를 받아 특정 작업을 처리할 때 사용할 수 있거나 변수에 따라 여러가지 상황에 따라 사용하는 등 활용도가 높다. 기본적으로 생성자의 이름은 해당 클래스의 이름을 따른다.
아래는 생성자(오버로딩)을 통해 2개의 객체를 생성하고 생성된 총 객체의 숫자를 카운트(Car.getNumberOfCars) 하는 소스 코드다.
CarTest.java
class Car {
private String color;
private int speed;
private int gear;
private int id;
private static int numberOfCars = 0; //정적 변수
public Car(String c, int s, int g) { //생성자(오버로딩)
color = c;
speed = s;
gear = g;
id = ++numberOfCars;
}
public static int getNumberOfCars() { //정적 메소드
return numberOfCars;
}
}
public class CarTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Car c1 = new Car("Blue", 100, 1);
Car c2 = new Car("White", 0, 1);
int num = Car.getNumberOfCars(); //정적 메소드는 이렇게 사용한다.
System.out.println(num);
}
}
접근 제어
접근 제어(access control)란 다른 클래스가 특정한 필드나 메소드에 접근하는 것을 제어하는 것이다. private나 public 등의 수식어를 필드나 메소드 앞에 붙여서 접근을 제한하게 된다. -- PowerJava 2판 p.211
private : 같은 클래스 안에서만 접근 가능
default : 같은 클래스, 같은 패키지 안에서만 접근 가능
protected : 같은 클래스, 같은 패키지, 상속받은 클래스 안에서만 접근 가능
public : 모든 클래스가 접근 가능
이 외에 default라는 접근 제어 지시자가 존재한다. 클래스 생성시 접근 제어 지시자를 지정하지 않으면 default가 된다.
관련자료
-
이전
-
다음
댓글 0개
등록된 댓글이 없습니다.