생성자, 정적(Static) 변수, 정적 메소드, 접근 제어
페이지 정보
작성자 최고관리자 작성일 70-01-01 09:00 조회 346 댓글 0본문
생성자와 Static 변수, 메소드
정적(static) 변수 : 여러 객체에서 공동으로 사용해야할 경우 변수 앞에 static을 사용한다. 인스턴스의 생성과 상관없이 초기화 되는 변수이며, 같은 변수명으로 하나만 선언 할 수 있다. public으로 선언된다면 어디서나 접근 가능하다.
정적(static) 메소드 : 정적 메소드도 정적 변수와 마찬가지로 여러 객체에서 사용할 경우 메소드 앞에 static을 붙여 사용한다. 특징은 정적 변수와 같다.
생성자(오버로딩) : 클래스를 사용해 객체를 생성할 때의 기본적인 동작을 설정 할 수 있다. 객체를 생성할 때 변수를 받아 특정 작업을 처리할 때 사용할 수 있거나 변수에 따라 여러가지 상황에 따라 사용하는 등 활용도가 높다. 기본적으로 생성자의 이름은 해당 클래스의 이름을 따른다.
아래는 생성자(오버로딩)을 통해 2개의 객체를 생성하고 생성된 총 객체의 숫자를 카운트(Car.getNumberOfCars) 하는 소스 코드다.
CarTest.java
[code=php]
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);
}
}
[/code]
접근 제어
접근 제어(access control)란 다른 클래스가 특정한 필드나 메소드에 접근하는 것을 제어하는 것이다. private나 public 등의 수식어를 필드나 메소드 앞에 붙여서 접근을 제한하게 된다. -- PowerJava 2판 p.211
private : 같은 클래스 안에서만 접근 가능
default : 같은 클래스, 같은 패키지 안에서만 접근 가능
protected : 같은 클래스, 같은 패키지, 상속받은 클래스 안에서만 접근 가능
public : 모든 클래스가 접근 가능
이 외에 default라는 접근 제어 지시자가 존재한다. 클래스 생성시 접근 제어 지시자를 지정하지 않으면 default가 된다.
정적(static) 변수 : 여러 객체에서 공동으로 사용해야할 경우 변수 앞에 static을 사용한다. 인스턴스의 생성과 상관없이 초기화 되는 변수이며, 같은 변수명으로 하나만 선언 할 수 있다. public으로 선언된다면 어디서나 접근 가능하다.
정적(static) 메소드 : 정적 메소드도 정적 변수와 마찬가지로 여러 객체에서 사용할 경우 메소드 앞에 static을 붙여 사용한다. 특징은 정적 변수와 같다.
생성자(오버로딩) : 클래스를 사용해 객체를 생성할 때의 기본적인 동작을 설정 할 수 있다. 객체를 생성할 때 변수를 받아 특정 작업을 처리할 때 사용할 수 있거나 변수에 따라 여러가지 상황에 따라 사용하는 등 활용도가 높다. 기본적으로 생성자의 이름은 해당 클래스의 이름을 따른다.
아래는 생성자(오버로딩)을 통해 2개의 객체를 생성하고 생성된 총 객체의 숫자를 카운트(Car.getNumberOfCars) 하는 소스 코드다.
CarTest.java
[code=php]
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);
}
}
[/code]
접근 제어
접근 제어(access control)란 다른 클래스가 특정한 필드나 메소드에 접근하는 것을 제어하는 것이다. private나 public 등의 수식어를 필드나 메소드 앞에 붙여서 접근을 제한하게 된다. -- PowerJava 2판 p.211
private : 같은 클래스 안에서만 접근 가능
default : 같은 클래스, 같은 패키지 안에서만 접근 가능
protected : 같은 클래스, 같은 패키지, 상속받은 클래스 안에서만 접근 가능
public : 모든 클래스가 접근 가능
이 외에 default라는 접근 제어 지시자가 존재한다. 클래스 생성시 접근 제어 지시자를 지정하지 않으면 default가 된다.
댓글목록 0
등록된 댓글이 없습니다.