클래스(class)란?
객체의 속성, 기능을 정의한 문서 (== 설계도)
[class 작성법]
[접근제한자] class 클래스{
// 기능1(생성자)
// 기능2(메서드)
}
[class 작성 시 알아야 할 것!!]
- class명은 꼭 대문자로 시작 !! (카멜 표기법)
- 접근 제한자
1) [+] public
- 뜻 : 공공의, 모두의
- 같은 프로젝트에서 어디서든 접근 가능
- public class : 같은 프로젝트에서 누구든지 해당 클래스를
가져가서(import)해서 사용할 수 있음
2) [~] (default)
- () == 생략을 의미 -> class 왼쪽에 아무것도 안적음
- 같은 패키지에서만 접근 가능
-> 다른 패키지 클래스에 import 불가
#테스트
[기능]
package cls.pkg1;
public class ClassTest1 {
public void method() {
System.out.println("public은 어디서든 접근 가능");
}
}
[실행] 같은 클래스
package cls.pkg1;
public class ClassRun1 {
public static void main(String[] args) {
// public class인 + 같은 채키지
// ClassTest1 객체 생성하기 -> 문제 여부 확인
ClassTest1 t1 = new ClassTest1();
t1.method();
[실행] 다른 클래스
package cls.pkg2;
import cls.pkg1.ClassTest1;
public class ClassRun2 {
public static void main(String[] args) {
// public class + 다른 패키지
// ClassTest1 객체 생성 하기 -> 문제 O/X
ClassTest1 t1 = new ClassTest1();
t1.method();
# default테스트
[기능]
package cls.pkg1;
// (default) 클래스 : 같은 패키지만 접근 가능
class DefaultClass {
public void method() {
System.out.println("(default)는 같은 패키지만 접근 가능");
}
}
[실행] 같은 클래스 => 문제 없음
package cls.pkg1;
public class ClassRun1 {
public static void main(String[] args) {
DefaultClass d1 = new DefaultClass();
d1.method();
}
}
[실행] 다른 클래스 => 문제 발생
package cls.pkg2;
import cls.pkg1.DefaultClass;
public class ClassRun2 {
public static void main(String[] args) {
DefaultClass d1 = new DefaultClass();
d1.method();
}
}
#예제
[기능]
package basic;
public class Nation {
/* 속성 */
// - 국민이라면 모두 가지고있을 공통적인 속성만 작성
// == 추상화
String name; // 이름
int age; // 나이
char gender; // 성별
String juminNumber; // 주민 번호
String tel; // 전화 번호
String address; // 주소
/* 기능 */
public void speakKoran() {
System.out.println("한국어 가능");
}
public void 납세의의무() {
// 19세 이상만 세금 납부 대상자
if(age >= 19) {
System.out.printf("%s 님은 세금 납부 대상자 입니다.", name);
} else {
System.out.printf("%s 님은 미성년자로 세금 납부 대상자 아닙니다.", name);
}
}
//자기 소개
public void introduce() {
System.out.printf("이름은 %s이고, %d세 %c성 입니다\n",
name, age, gender);
}
}
[실행]
package basic;
// 같은 패키지의 클래스는 import X
public class BasicRun {
public static void main (String[] args) {
// 국민 객체 생성
// == 국민(Nation) 클래스에 작성된 내용대로
// Heap 메모리 영역에 할당(생성) 하는 것
Nation n1 = new Nation(); // 국민 객체 성성됨
// 국민 객체에 값 대입
n1.name = "홍길동";
n1.age = 20;
n1.gender = '남';
// 국민 객체가 공통적으로 가진 기능(메서드 수행)
n1.introduce();
// 국민 객체 생성
Nation n2 = new Nation();
n2.name = "신짱구";
n2.age = 5;
n2.gender = '남';
// n2.tel =
// 세금 납부 여부 확인
System.out.println("--------------------------");
n1.납세의의무();
System.out.println();
n2.납세의의무();
}
}
#결과

'BackEnd > Java' 카테고리의 다른 글
| [Java]OOP Static (0) | 2024.07.23 |
|---|---|
| [Java]OOP_필드(Field) (1) | 2024.07.23 |
| [Java]객체지향언어(OOP) 정의 및 Account (0) | 2024.07.23 |
| [Java]배열(Array) for문 (1) | 2024.07.21 |
| [Java]배열(Array) (0) | 2024.07.21 |