Day 11

dokiru·2023년 2월 14일
0

학원

목록 보기
9/51

퀴즈 피드백

  • 클래스 이름은 직관적으로 (이름만 봐도 어떤 정보를 담고 있을지에 대한 추측 가능해야) -> 첫글자도 대문자!!!
  • 필드명도 직관적으로

클래스

  • 대부분 필드쪽에서 초기값을 세팅하기보다는 생성자에서 매개변수로 넘기거나 생성자에서 초기화 해주는 편

생성자

  • 생성자는 리턴타입이 없다.
  • 생성자의 오버로딩 : 매개 변수의 타입과 개수 그리고 선언된 순서가 똑같을 경우 매개 변수 이름만 바꾸는 것은 생성자 오버로딩이라고 할 수 없다.
ex1. 
Model(String name, String code){} 
Model (String code, String name){} => 오버로딩이 아님

ex2. 
Student(String _name, boolean _isDrop, int _idNum) {}	
Student(int _idNum, boolean _isDrop, String _name) {} => 오버로딩 O
  • 생성자 안에서 this를 불러와서 생성자 자기 자신을 불러올 수 있다 -> 생성자의 첫 매개값은 호출되는 생성자의 매개 변수 타입에 맞게 제공해야함
  • 생성자 오버로딩을 통해 중복 코드를 최소화할 수 있음 ex.
    public class Car {
    	String company = "현대자동차";
    	String model;
    	String color;
    	int maxSpeed;
    	
    	Car(){
    	}
    	
    	Car (String model) {
    		this(model, "은색", 250); 
           // 클래스의 다른 생성자 호출
           // 매개변수 타입에 맞게 제공, 반드시 생성자 첫줄에서만 허용
    	}
    	
    	Car (String model, String color) {
    		this(model, color, 250);
    	}
    	
    	Car (String model, String color, int maxSpeed) {
    			this.model = model;
    			this.color = color;
    			this.maxSpeed = maxSpeed;
    	}
      }

메소드
리턴 O => println안에서 메서드 사용해서 값 출력할 수 있다 / 반환받아서 출력하거나 활용
리턴 X => 메서드 자체에 println을 사용해서 연산이 끝난 후의 값을 출력할 수 있다 / 그냥 수행하고 끝
void 타입인데 그냥 return => 메서드를 종료하는 return;

void justStop(int num) {
	if(num == 4) return; // num이 4이면 메소드 종료, 아래 코드 실행X
	System.out.println(num);
}

int (리턴타입) justStop(int num2) {
   // 매개변수가 int값이기 때문에 매개값으로 int값이나 int 타입으로 변환될 수 있는 값을 넘겨주어야 한다. ex. byte
   
	if (num >= 4) return 4; // num이 4보다 크면 4 반환
    return num; // 아니면 그냥 숫자 반환
    // return 값은 리턴 타입이거나 리턴 타입으로 변환될 수 있는 값을 리턴해야한다.
 };

메소드의 호출

  • 내부 : 메소드 (매개값 ... )
  • 외부 :
  1. 클래스로부터 객체를 생성 ex. Student student = new Student();
  2. 객체에 도트연산자를 사용해서 메소드를 호출 student.getGrade();
    2-1. 리턴값이 있으면 변수에 저장해서 사용 가능 boolean isDropped = student.getDropped();

메소드의 오버로딩
: 변수 타입, 순서, 개수 중 하나가 달라져야 한다. (메소드이름은 동일)
: 변수 타입, 순서, 개수가 똑같은 경우 매개 변수 이름만 바꾸는 것 or 리턴타입만 바꾸는 것은 오버로딩이라고 할 수 없다.
: 매개값을 다양하게 받아 처리할 수 있게 하기위함

profile
안녕하세요!

0개의 댓글