12일차 클래스
#클래스
공통요소로 묶자!
#클래스 선언
class 클래스명{
필드(변수, 메서드)
}
#클래스 사용
클래스명 객체명 = new 클래스명();
객체명. 필드;
. : 하위 연산자
A.b : A안에 b
#객체화(인스턴스)
추상적인 개념을 실체화시킨다.
클래스로 접근하지 않고
클래스타입의 객체로 만들어서 그 객체로 접근한다.
#생성자
클래스명()
초기화의 목적이 있다.
메서드와 같은 기능을 가지고 있지만, 리턴이 없으며,
리턴타입도 없다. 따라서 메서드라고 부르지 않는다.
(예제)
public class Car {
int price;
String color;
String brand;
Car(){}
//항상 만들기 그래야 오류가 나지 않음
Car(int price, String color, String Brand){
this.price = price;
this.color = color;
this.brand = brand;
}
double speedUp(double speed){
speed++;
return speed;
}
double speedDown(double speed){
speed--;
return speed;
}
void showInfo() {
System.out.println(this);
System.out.println("브랜드:"+this.brand+"\n색상:"+color+"\n가격"+price);
}
//사용한 객체의 주소를 받는것
public static void main(String[] args) {
//객체화 car 클래스를 엄마차로 실체화 시킨것
//인스턴스 변수 (실체화)
// 클래스명 () : 기본생성자(선언하지 않아도 사용가능)
//클래스를 선언하면 자동으로 선언되는 생성자
//갑자기 오류가 남 내가만든 생성자가 초기값이 되니까
momCar.brand = "Benz";
momCar.color ="Black";
momCar.price = 9000;
momCar.showInfo();
System.out.println(momCar);
}}
클래스
생성자 생성할 때,
Alt+Shift+S > O
생성자 생성 후 Main 안에 이렇게 변수를 넣어주면
아래와 같이 잘나옴! 이것을 숙달해야 함
Car momCar = new Car(9000, "Black","Benz");
momCar.showInfo();
Car dadyCar = new Car();
Car myCar = new Car();
(결과창)
#오버 로딩
같은 이름의 메서드라도
매개변수의 객수 혹은 타입이다르면
선언 가능하다.
(예제) 오버로딩
public class OverLoading {
void add(int num1, int num2) {
System.out.println("두정수의 합");
System.out.println(num1+num2);
}
void add(int num1, int num2, int num3) {
System.out.println("세정수의 합");
System.out.println(num1+num2+num3);
}
void add(double num1, double num2) {
System.out.println("두실수의 합");
System.out.println(num1+num2);
}
public static void main(String[] args) {
OverLoading o = new OverLoading();
o.add(10,20);
o.add(10.5, 20.9);
o.add(1,2,3);
}}
*같은 이름이어도 각 변수의 수에 맞게 잘나온다.
(결과창)
Author And Source
이 문제에 관하여(12일차 클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jamiview/12일차-클래스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)