4주차 - 메서드 method (1)
2022. 9. 3. 15:06ㆍJava/java
메서드란
객체 지향 프로그래밍에서 객체와 관련된 서브 루틴 (또는 함수)
출처 : 위키백과 - 메소드
나같은 초보들이 이해하기에 사전적 정의는 이해하기 어렵다.쉽게 이해하자면 클래스 내부에 있는 기능들을 부르는 명칭이 메서드이다.
아래는 클래스에서 메서드를 만드는 예시
import java.util.ArrayList;
public class SubClass02 {
//method1() 이라는 메서드를 만드는 구문
public void method1() {
System.out.println("SubClass 멤버로 구성된 method1");
}
// method2() 라는 메서드를 만드는 구문
public static void method2() {
System.out.println("SubClass1 멤버로 구성된 method2");
}
// void는 return하는 데이터가 없다는 의미이다.
// public '자료형' 을 사용하면 '자료형'에 맞는 return 값을 지정해줘야한다.
/* 아래 코드의 입력 구조
접근 제어자-반환자료형-메서드이름(매개변수,매개변수)
*/ public int method3() {
// int 의 위치에 있는 값을 '반환자료형' 이라 부른다.
int data = 100, data2= 200;
return data;
// return 뒤의 데이터를 반환한다. 이때 데이터는 하나만 반환가능하다.
/* 여러 데이터를 반환하고 싶을 때에는 배열을 사용할 수 있다.
* 같은 자료형일때 : 배열, 컬렉션
* 다른 자료형일때 : 컬렉션, 사용자정의 클래스{exam) MemberDTO}
*/
}
public ArrayList<Integer> method4() {
int data = 100, data2= 200;
ArrayList<Integer> datas = new ArrayList<>();
datas.add(data);
datas.add(data2);
return datas;
}
public int method5(int data1, int data2) {
System.out.println("전달받은 매개변수 : " + data1 + ", "+data2);
return data1+data2;
}
public int method6(ArrayList<Integer> datas) {
int data1 = datas.get(0);
int data2 = datas.get(1);
return data1+data2;
}
}
// 매개변수 = parameter = argument
예시 2
public class DataAccess {
private String url; // 멤버변수, 멤버 필드 라고 부른다.
/*
* 기본 생성자(default constructor) - 매개변수가 비어있을때
* : 명시 하지 않으면 자동으로 생섬됨.
* : 다른 생성자를 명시하면 기본생성자는 자동으로 생성되지 않음
*/
// 생성자는 void, int, String 등이 들어가지 않는다!
public DataAccess() {
String id = "oracle";
String password = "1234";
url = "www.data.com";
System.out.println("연결 정보 : " + id + ", " + password + ", " + url);
}
// 생성자
public DataAccess(String id) {
String password = "1234";
url = "www.data.com";
System.out.println("연결 정보 : " + id + ", " + password + ", " + url);
}
// 생성자
public DataAccess(String id, String password) {
url = "www.data.com";
System.out.println("연결 정보 : " + id + ", " + password + ", " + url);
}
// 생성자
public DataAccess(String id, String password, String url) {
this.url = url;
System.out.println("연결 정보 : " + id + ", " + password + ", " + this.url);
}
public void insert() {
System.out.println(this.url + "연결합니다");
System.out.println("데이터를 저장합니다.");
}
public void select() {
System.out.println(url + "연결합니다");
System.out.println("데이터를 조회합니다.");
}
public void update() {
System.out.println(url + "연결합니다");
System.out.println("데이터를 수정합니다.");
}
public void delete() {
System.out.println(url + "연결합니다");
System.out.println("데이터를 삭제합니다.");
}
}
위에서 만든 메서드를 이용하는 예제
import java.util.ArrayList;
class SubClass1 {
public void method1() {
System.out.println("SubClass 멤버로 구성된 method1");
}
public static void method2() { // static 이 붙으면 메서드를 불러오는 방법이 다르다
// static 을 사용하면 해당 기능은 선언을 하지 않아도 항상 사용가능하고 프로그램의 시작과 동시에 시작되며 끝날때 같이 끝난다.
System.out.println("SubClass1 멤버로 구성된 method2");
}
}
public class MainClass01 {
public static void main(String[] args) {
DataAccess da = new DataAccess();
SubClass02 sub1 = new SubClass02();
sub1.method1();
sub1.method2();
// method2 는 static 메서드로 작성되었기 때문에 SubClass1 변수 생성하고 변수 안에서 method2를 불러오는것보다 직접 불러오는걸 권장한다.
SubClass02.method2(); // 변수 생성하지 않고 바로 메서드를 불러오는 예시
SubClass02 sub2 = new SubClass02();
sub2.method1();
SubClass02.method2();
int data = sub2.method3();
System.out.println("method3 반환데이터 : " + data);
ArrayList<Integer> datas = sub2.method4();
System.out.println("method4 반환데이터 : " + datas.get(0));
System.out.println("method4 반환데이터 : " + datas.get(1));
int result = sub2.method5(22, 33);
System.out.println("합계 : " + result);
result = sub1.method6(datas);
System.out.println(result);
}
}
'Java > java' 카테고리의 다른 글
StringTokenizer VS split() 둘을 비교해보자 (0) | 2023.02.07 |
---|---|
4주차 - 메서드 method (2) , 스태틱 메서드 static method (0) | 2022.09.03 |
4주차 - 상속 inheritance (5), 인터페이스 interface (0) | 2022.09.03 |
4주차 - 상속 inheritance (4), 추상 메서드 (0) | 2022.09.03 |
4주차 - 상속 inheritance (3) (0) | 2022.09.03 |