01 클래스
1) 객체, 클래스, 인스턴스
- 객체 : 세상에 존재하는 모든 것(프로그래밍에서는 속성과 기능을 가진다.) 우리 눈에 보이는 모든 것은 객체가 될 수 있다.
'클래스의 인트턴스'라고 불림.
ex) 책, 노트북 등
- 클래스 : 객체를 만들기 위한 틀. 클래스로 여러 개의 객체를 생성할 수 있다.
속성(필드)와 기능(메소드)로 구성된다. *클래스 변수명은 대문자로 시작.
예를 들어, 강아지가 있다. 강아지의 종류에는 말티즈, 치와와 등 다양한데, 이런 다양한 종류의 강아지(객체)를 생성하기 위해 클래스라는 틀을 만들고 치와와, 말티즈 등의 객체를 생성한다.
- 인스턴스 : 클래스에 의해 생성된 객체, 객체가 메모리에 할당된 상태
2 ) 클래스 변수 vs 인스턴스 변수 vs 지역변수
클래스 변수 - 여러 인스턴스가 공유하는 변수이다. 앞에 static을 붙이면 된다.
생성시기 : 클래스가 메모리에 올라갈 때 생성된다.
접근 : 클래스명.클래스 변수명
예를 들어, 자동차 클래스를 생성한다고 가정해보자. 자동차1, 자동차2 등의 여러 개의 객체가 생성될 때마다 생성된 차의 개수를 저장하는 변수를 만들고자 하면, 이를 클래스 변수로 만들면 된다.
car.java
1
2
3
4
5
6
7
8
9
10
11
12
|
package practice;
public class Car {
static int count = 0;
public Car() {
System.out.println("그랜저 생성자");
count += 1;
}
}
|
MainClass.java
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package practice;
public class MainClass{
public static void main(String[] args) {
Car mycar1 = new Car();
System.out.println(Car.count);
Car mycar2 = new Car();
System.out.println(Car.count);
}
}
|
count가 클래스 변수이다.
- 객체변수(인스턴스 변수) : 각 인스턴스(객체)가 갖는 고유한 값을 가지는 변수. *인스턴스 변수는 여러 개의 객체가 서로 공유하지 않는다.
생성시기 : 인스턴스(객체)가 생성될 때
접근 : 객체명.인스턴스변수명
- 지역 변수 : 매소드 내에서 선언 및 사용되는 변수.
*객체변수와 인스턴스 변수는 전역변수이다.
02 메소드
1) 선언
*메소드 이름은 Camel 표기법으로 짓는다.
ex. public void getInfo() {
접근자 반환형 이름 매개변수
}
2) 생성자와 메소드
생성자 - 객체 생성시 가장 먼저 자동으로 호출된다. 메소드와 형태가 비슷해 보일 수도 있는데, 다르다.
생성자에는 클래스의 이름과 정확히 같은 이름이 와야한다.
ex. public Car() {
}
3) public vs private
접근자가 public이면 main클래스에서나 다른 데서 자유롭게 접근이 가능하지만, private일 때는 해당 클래스 내부에서만 접근이 가능하다.
'Programming study > JAVA' 카테고리의 다른 글
[Java] 자료형 (0) | 2021.07.16 |
---|---|
[JAVA] 01 자바 프로그래밍 시작하기 (0) | 2021.02.22 |