1. This
_07_This
public class _07_This {
public static void main(String[] args) {
BlackBox b1 = new BlackBox();
b1.modelName = "까망이"; // 까망이(최신형)
b1.appendModelName("(최신형)");
System.out.println(b1.modelName);
}
}
BlackBox
void appendModelName(String modelName) {
this.modelName += modelName;
}
*객체의 이름이 파라미터와 똑같을 때 this를 써서 파라미터를 호출
2. 생성자
_08_Constuctor
public class _08_Constructor {
public static void main(String[] args) {
BlackBox b1 = new BlackBox();
b1.modelName = "까망이";
b1.resolution = "FHD";
b1.price = 200000;
b1.color = "블랙";
System.out.println(b1.modelName);
System.out.println(b1.serialNumber);
System.out.println("-----------------------");
BlackBox b2 = new BlackBox("하양이", "UHD", 300000, "화이트");
System.out.println(b2.modelName);
System.out.println(b2.serialNumber);
}
}
BlackBox
BlackBox() {
// System.out.println("기본 생성자 호출");
// this.serialNumber = ++counter;
// System.out.println("새로운 시리얼 넘버를 발급받았습니다 : " + this.serialNumber);
}
BlackBox(String modelName, String resolution, int price, String color) {
// this(); // 기본 생성자 호출
//
// System.out.println("사용자 정의 생성자 호출");
// this.modelName = modelName;
// this.resolution = resolution;
// this.price = price;
// this.color = color;
}
3. Getter 와 Setter
_09_GetterSetter
public class _09_GetterSetter {
public static void main(String[] args) {
BlackBox b1 = new BlackBox();
b1.modelName = "까망이";
b1.price = 200000;
b1.color = "블랙";
// 할인 행사
b1.price = -5000;
System.out.println("가격 : " + b1.price + "원");
// 고객 문의
System.out.println("해상도 : " + b1.resolution);
System.out.println("-------------------");
BlackBox b2 = new BlackBox();
b2.setModelName("하양이");
b2.setPrice(-5000);
b2.setColor("화이트");
System.out.println("가격 : " + b2.getPrice() + "원");
System.out.println("해상도 : " + b2.getResolution());
b2.price = -5000;
}
}
BlackBox
void setModelName(String modelName) {
this.modelName = modelName;
}
String getResolution() {
if (resolution == null || resolution.isEmpty()) {
return "판매자에게 문의하세요.";
}
return resolution;
}
void setResolution(String resolution) {
this.resolution = resolution;
}
int getPrice() {
return price;
}
void setPrice(int price) {
if (price < 100000) {
this.price = 100000;
}
else {
this.price = price;
}
}
String getColor() {
return color;
}
void setColor(String color) {
this.color = color;
}
4. 접근 제어자
_10_AccessModifier
public class _10_AccessModifier {
public static void main(String[] args) {
// 캡슐화 (Encapsulation) : 연관된 것들만 캡슐에 담는다
// 정보은닉 (Information hiding)
// 접근 제어자
// private : 해당 클래스 내에서만 접근 가능
// public : 모든 클래스에서 접근 가능
// default : (아무것도 적지 않았을 때) 같은 패키지 내에서만 접근 가능
// protected : 같은 패키지 내에서, 다른 패키지인 경우 자식 클래스에서 접근 가능
BlackBoxRefurbish b1 = new BlackBoxRefurbish();
b1.modelName = "까망이";
b1.setPrice(200000);
b1.color = "블랙";
// 할인 행사
b1.setPrice(-5000);
System.out.println("가격 : " + b1.getPrice() + "원");
// 고객 문의
System.out.println("해상도 : " + b1.resolution);
System.out.println("-------------------");
BlackBoxRefurbish b2 = new BlackBoxRefurbish();
b2.setModelName("하양이");
b2.setPrice(-5000);
b2.setColor("화이트");
System.out.println("가격 : " + b2.getPrice() + "원");
System.out.println("해상도 : " + b2.getResolution());
}
}
*ctrl + c / ctrl + r -> 한 번에 바꾸기
BlackBoxRefurbish
public class BlackBoxRefurbish {
public String modelName; // 모델명
String resolution; // 해상도
private int price; // 가격
protected String color; // 색상
public String getModelName() {
return modelName;
}
public void setModelName(String modelName) {
this.modelName = modelName;
}
public String getResolution() {
if (resolution == null || resolution.isEmpty()) {
return "판매자에게 문의하세요.";
}
return resolution;
}
public void setResolution(String resolution) {
this.resolution = resolution;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
if (price < 100000) {
this.price = 100000;
}
else {
this.price = price;
}
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
5. 패키지
_11_Package
import java.util.Random;
public class _11_Package {
public static void main(String[] args) {
// 패키지 (랜덤 클래스)
Random random = new Random();
System.out.println("랜덤 정수 : " + random.nextInt()); // int 의 범위 내에서 정수형 값 반환
System.out.println("랜덤 정수 (범위) : " + random.nextInt(10)); // 0 이상 10 미만의 정수형 값
System.out.println("랜덤 실수 : " + random.nextDouble()); // 0.0 이상 1.0 미만의 실수값
// System.out.println("랜덤 실수 (범위) : " + random.nextDouble(10.0));
// 만약 5.0 이상 10.0 미만의 실수를 뽑으려면?
double min = 5.0;
double max = 10.0;
System.out.println("랜덤 실수 (범위) : " + (min + (max - min) * random.nextDouble()));
System.out.println("랜덤 boolean : " + random.nextBoolean());
// 로또 번호를 랜덤으로 뽑으려면? 1~45
System.out.println("로또 번호 : " + (random.nextInt(45) + 1));
// nextInt(45) : 0 이상 45 미만의 수
// nextInt(45) + 1 : 1 이상 46 미만의 수 = 1 이상 45 이하의 수
// Math, Scanner, StringBuilder, StringBuffer, StringTokenizer
// BigInteger, BigDecimal
// LocalDate, LocalTime, LocalDateTime, DateTimeFormatter, ...
}
}
6. 상속
_12_Inheritance
import chap_07.camera.Camera;
import chap_07.camera.FactoryCam;
import chap_07.camera.SpeedCam;
public class _12_Inheritance {
public static void main(String[] args) {
// 상속
Camera camera = new Camera();
FactoryCam factoryCam = new FactoryCam();
SpeedCam speedCam = new SpeedCam();
System.out.println(camera.name);
System.out.println(factoryCam.name);
System.out.println(speedCam.name);
camera.takePicture();
factoryCam.recordVideo();
speedCam.takePicture();
factoryCam.detectFire();
speedCam.checkSpeed();
speedCam.recognizeLicensePlate();
}
}
*상속할 때는 extends (eg. public class FactoryCam extends Camera {} )
*하나의 부모만 상속 가능
*부모의 메소드 사용 가능
'인강 보습 (인프런,유데미,패스트캠퍼스) > 나도코딩의 자바 기본편' 카테고리의 다른 글
추상 클래스와 인터페이스 (0) | 2023.01.17 |
---|---|
클래스 (3) - 메소드 오버라이딩, 다형성, Super, 참조, Final, 열거형 (0) | 2023.01.17 |
클래스 (1) - 클래스, 인스턴스 변수, 클래스 변수, 메소드, 메소드 오버로딩, 클래스 메소드 (0) | 2023.01.17 |
메소드 (2) - Overloading, WhenToUse, VariableScope, MainMethod (0) | 2023.01.13 |
메소드 - (1) : Method, Parameter, Return, ParameterAndReturn (0) | 2023.01.13 |