728x90
1. 클래스 선언하기
- 클래스 키워드와 함께 클래스명 지정
- 접근 지정자 지정
- 필드와 함께 메서드를 갖는다.
2. 접근지정자
- public : 전 패키지 내에 접근 가능
- protected : 해당 패키지 내에서 접근 가능
- private : 해당 클래스에서 접근가능
- default : 접근 지정자가 명시 되어있지 않는 클래스나 메서드, protected와 동일
3. 필드
- 필드는 접근지정자와 데이터형 변수명으로 변수를 선언 가능
- 접근지정자 데이터형 변수명;
- 필드는 주로 private으로 선언하여 캡슐화한다.
**캡슐화 ; 클래스의 데이터와 기능을 하나로 묶어 구성원을 보호하는 기능
다른 패키지에서 접근할 수 없도록 보호하는 것, 데이터 은닉
4. 메서드
- 메서드는 접근지정자, 리턴 타입, 메서드명으로 이루어진다.
- 매개변수를 받거나 생략할 수 있다.
- 명시된 리턴타입에 맞춰 해당 데이터형을 리턴해줘야 한다.
- 매서드메서드 내에서 this 키워드를 활용하여 자신의 클래스에 해당되는 필드 혹은 매서드에 접근할 수 있다.
- 기본구조
접근지정자 리턴타입 메서드명 (매개변수){ }
5. 리턴
- 리턴 타입에 따라 리턴 있고 없고
- void 리턴 없음
6. 실습
클래스 기본 구조
package kr.or.ksmart;
public class JavaBasic03 {
private String name;
public void test() {
this.name = "홍길동";
}
public static void main(String[] args) {
JavaBasic03 javabasic = new JavaBasic03(); //본인도 객체화 해야 사용 가능
javabasic.test(); //접근 지정자 public이라 접근 가능
javabasic.name; //private 은 접근 불가 -> 이거슨 에러임당!!
}
}
파일 하나에 여러 개 클래스 생성하기
package kr.or.ksmart;
class Car{
int num;
double gas;
}
class JavaBasic04 {
public static void main(String[] args) {
Car car = new Car(); //변수를 선언해서 객체화 한다.
car.gas = 15.5; //속성에 접근 가능하다.
car.num = 2534;
}
}
파일 하나에 하나의 클래스를 주로 작업하지만 파일 하나에 여러 개 클래스를 생성할 수 있다.
접근 지정자는 메인 클래스에 하나만 지정하면 된다.
객체화를 여러 번 하면
package kr.or.ksmart;
class Car{
int num;
double gas;
}
class JavaBasic04 {
public static void main(String[] args) {
//new 연산자를 통해 인스턴스화(객체화)를 해야 해당 클래스의 매서드나 필드에 접근 가능하다.
Car car = new Car();
car.gas = 15.5;
car.num = 2534;
System.out.println(car.gas + " : gas");
System.out.println(car.num + " : num");
car = new Car(); //이 객체는 다른 주소값을 갖게 된다.
System.out.println(car.gas + " : gas");
System.out.println(car.num + " : num");
}
}
private 접근지정자 필드에 접근하는 방법
package kr.or.ksmart;
class Car{
int num;
double gas;
private String carName;
String getCarName() { //값을 가져올때 get
return carName;
}
void setCarName(String carName) { //값을 넣은때 set
this.carName = carName;
}
}
class JavaBasic04 {
public static void main(String[] args) {
//new 연산자를 통해 인스턴스화(객체화)를 해야 해당 클래스의 매서드나 필드에 접근 가능하다.
Car car = new Car();
car.gas = 15.5;
car.num = 2534;
car.setCarName("mustang");
//필드가 private 접근지정자임으로 protected 접근 지정자인 메서드로 접근하여 필드에 접근한다.
System.out.println(car.gas + " : gas");
System.out.println(car.num + " : num");
System.out.println(car.getCarName() + " : carName");
}
}
리턴에서 객체화 하기
package kr.or.ksmart;
class Car{
int num;
double gas;
private String carName;
String getCarName() {
return carName;
}
void setCarName(String carName) {
this.carName = carName;
}
}
class Car2{
Car getCar() {
return new Car(); //객체화 한 것을 바로 리턴
}
}
class JavaBasic04 {
public static void main(String[] args) {
Car2 car2 = new Car2();
car = car2.getCar();
}
}
클래스 Car2의 리턴이 Car클래스를 객체화 해줬기 때문에 클래스 JavaBasic04 에서 별도의 Car 클래스 인스턴스화 없이 바로 사용 가능하다.
반응형
'Backend > JAVA' 카테고리의 다른 글
JAVA 실습. 클래스 (0) | 2020.04.21 |
---|---|
JAVA 형 변환 (0) | 2020.04.21 |
JAVA 배열 (0) | 2020.04.21 |
JAVA txt로 작성하여 cmd로 컴파일 및 실행하기 (0) | 2020.04.14 |
jdbc 로그인 처리하기 (0) | 2020.03.27 |
댓글