일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- IntelliJ
- intellij 연동
- SSL
- git
- Checkout
- Class
- Branch
- 캡슐화
- error
- Android Studio
- TortoiseSVN
- 상속
- sourcetree
- 문법
- java
- constructor
- IntelliJ IDEA Community
- 생성자
- svn
- 자바
- install
- cherrypick
- terms
- 특징
- VCS
- gradle
- commit
- Android
- syntax
- Subversion
Archives
- Today
- Total
Jay's Developer Note
[JAVA] Class - 4(메소드) 본문
728x90
메소드(Method)
메소드(Method)는 클래스가 가지는 동적인 특성을 정의한다.
부르는 사람에 따라 메소드, 메서드 등 다양하게 불린다.
형식
[접근 제어자] [사용 방식] 리턴타입 메소드이름([매개 변수]...) {
// 코드
}
생성자와는 다르게 리턴타입이 반드시 들어가야 한다.
접근 제어자
접근 제어자는 멤버 변수와 동일하게 적용된다.
사용 방식
사용방법
class Hyundai {
public static void main(String[] args) {
Car mCar = new Car();
mCar.model = "AVANTE";
mCar.print();
}
}
class Car {
String model;
public void print() {
System.out.println("자동차 모델명 : " + this.model);
}
}
//실행 결과
자동차 모델명 : AVANTE
응용
이전에 배웠던 생성자를 응용하여 소스코드를 변경해보겠다.
(생성자 관련 게시글 : https://fall-in-it.tistory.com/34)
class Hyundai {
public static void main(String[] args) {
// 모델 변수 초기화하면서 Car 객체 생성
Car mCar = new Car("AVANTE");
// model 설정이 필요 없어짐
// mCar.model = "AVANTE";
mCar.print();
}
}
class Car {
String model;
// 생성자를 추가하면 기본 생성자가 사라지기 때문에
// 기본 생성자를 추가
public Car() {}
// 모델 변수를 초기화하는 생성자 추가
public Car(String model) {
this.model = model;
}
public void print() {
System.out.println("자동차 모델명 : " + this.model);
}
}
//실행 결과
자동차 모델명 : AVANTE
클래스 메소드(static)
멤버 변수에 static 을 선언하면 클래스 변수가 되듯 메소드에도 static 을 선언하면 클래스 메소드가 된다. 클래스 변수와 동일하게 클래스를 로딩할 때 생성되기 때문에 클래스.메소드( ) 로 사용할 수 있다. 클래스가 로딩될 때 생성되기 때문에 보통 Util 관련된 클래스나 공통으로 쓰이는 클래스에 싱글톤 패턴으로 많이 사용되는 편이다.
사용방법
class Hyundai {
public static void main(String[] args) {
Car.print("AVANTE");
}
}
class Car {
public static void print(String model) {
System.out.println("자동차 모델명 : " + model);
}
}
//실행 결과
자동차 모델명 : AVANTE
오버로딩(Overloading)
오버로딩은 동일한 클래스 안에 매개변수의 개수, 타입, 순서가 다른 동일한 이름의 메소드가 여러 개 있는 것이다.
이는 객체지향 언어의 특징 중 하나인 다형성이다. 접근제어자, 사용방식, 리턴타입이 다른 것은 오버로딩에 속하지 않는다.
사용방법
class Hyundai {
public static void main(String[] args) {
Car mCar = new Car();
// int 매개변수 메소드 호출
mCar.refueling(4);
mCar.print();
// String 매개변수 메소드 호출
mCar.refueling("8");
mCar.print();
}
}
class Car {
int oil;
public void print() {
System.out.println("현재 연료 : " + oil + "L");
}
public void refueling(int oil) {
this.oil = oil;
}
public void refueling(String oil) {
// String -> int
this.refueling(Integer.parseInt(oil));
}
// 리턴타입이 다른 것은 의미 없음
//public boolean refueling(int oil) { }
// 접근 제한자가 다른 것은 의미 없음
//void refueling(int oil) { }
}
// 실행 결과
현재 연료 : 4L
현재 연료 : 8L
728x90
'JAVA' 카테고리의 다른 글
[JAVA] Class - 5(상속) (0) | 2022.04.02 |
---|---|
[JAVA] 캡슐화 & 은닉화 (0) | 2022.03.16 |
[JAVA] Class - 3(멤버 변수) (0) | 2022.03.11 |
[JAVA] Class - 2(생성자) (0) | 2022.02.25 |
[JAVA] Class - 1(클래스) (0) | 2022.02.24 |