본문 바로가기

교내 개발 공부/[학교 지원 Study] 자바 프로그래밍 입문

JAVA 객체 | 메서드 | 매개변수(parameter) | 중복 메서드 (overloading) | 접근자 | private | public

인프런

자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!!

색션 2. JAVA 객체

메서드

 

13-1 : 메서드 선언과 호출

메서드도 변수와 같이 선언 및 정의 후 필요시에 호출해서 사용한다.

 

메서드 선언 및 정의

public void getInfo() { //public은접근자 void는반환형 getInfo는메서드이름 ()은메개변수
//그리고윗줄은메서드선언
//메서드이름은동사+명사무슨뜻인지알수있게

	System.out.println(" i = " + i);
    System.out.println(" b = " + b);
    System.out.println(" d = " + d);
    System.out.println(" c = " + c);
    System.out.println(" s = " + s);
    
  //위에출력부분은메서드정의

메서드 호출

childClass.childClass = new childClass();
childClass.getInfo();

childClass생성

메인메소드도생성

package pjtTest;

public class MainClass_childClass {

	public static void main(String[] args) {
		
	}	
		
}

//main입력후ctrl+space해서메서드찾아서엔터
package pjtTest;

public class childClass {

	public String name; //메서드생성
	public String gender;
	public int age;
	
	public childClass() {
		System.out.println(" -- childClass constructor -- ");
	}
	
	public void getInfo() {
		System.out.println(" -- getInfo() START -- ");
		
		//메소드기본형태만 기능구현X
		System.out.println(" name : " + name);
		System.out.println(" gender : " + gender);
		System.out.println(" age : " + age);
	}
	
}
package pjtTest;

public class MainClass_childClass {

	public static void main(String[] args) {
		
		childClass child1 = new childClass();
		child1.getInfo();

	}	
		
}

-- childClass constructor --

-- getInfo() START --

name : null

gender : null

age : null

어떠한 속성도 지정해 주지 않아서 아직은 이렇게 뜸

불러올 수는 있음을 확인

package pjtTest;

public class MainClass_childClass {

	public static void main(String[] args) {
		
		childClass child1 = new childClass();
		child1.name = "hong gil dong";
		child1.gender = "M";
		child1.age = 20;
		
		child1.getInfo();

	}	
		
}

-- childClass constructor --

-- getInfo() START --

name : hong gil dong

gender : M

age : 20

 

13-2 : 매개변수(parameter)

메서드를 호출할 때 데이터를 전달할 수 있다.

public void getInfo() { //매개변수(parameter)는 필요시에만 정의된다.

}

public void setInfo(int i, boolean b, double d, char c, String s) {

} //매개변수(parameter)는 자료형과 변수(지역변수)로 이루어진다.
package pjtTest;

public class childClass {

	public String name; //메서드생성
	public String gender;
	public int age;
	
	public childClass() {
		System.out.println(" -- childClass constructor -- ");
	}
	
	public void setInfo(String n, String g, int a) {
		System.out.println(" -- setInfo() START -- ");
		
		name = n;
		gender = g;
		age = a;
	}
	
	public void getInfo() {
		System.out.println(" -- getInfo() START -- ");
		
		//메소드기본형태만 기능구현X
		System.out.println(" name : " + name);
		System.out.println(" gender : " + gender);
		System.out.println(" age : " + age);
	}
	
}
package pjtTest;

public class MainClass_childClass {

	public static void main(String[] args) {
		
		childClass child1 = new childClass();

		child1.setInfo("hong gil dong", "M", 20);
		
		child1.getInfo();

	}	
		
}

-- childClass constructor --

-- setInfo() START --

-- getInfo() START --

name : hong gil dong

gender : M

age : 20

13-3 : 중복 메서드(overloading)

이름은 같고, 매개변수의 개수 또는 타입이 다른 메서드를 만들 수 있다.

package pjtTest;

public class childClass {

	public String name; //메서드생성
	public String gender;
	public int age;
	
	public childClass() {
		System.out.println(" -- childClass constructor -- ");
	}
	
	/*public void setInfo(String n, String g, int a) {
		System.out.println(" -- setInfo() START -- ");
		
		name = n;
		gender = g;
		age = a;
	}
	
	public void getInfo() {
		System.out.println(" -- getInfo() START -- ");
		
		//메소드기본형태만 기능구현X
		System.out.println(" name : " + name);
		System.out.println(" gender : " + gender);
		System.out.println(" age : " + age);
		*/
	
	public void getInfo() { //중복되어도상관없지만매개변수차이있어야함
		System.out.println(" -- getInfo - 1 -- ");
	}
	
	public void getInfo(int x, int y) { //위는매개변수없지만얘는있음
		
		System.out.println(" -- getInfo - 2 -- ");
		System.out.printf("parameter --> x : %d, y : %d\n", x, y);
	}
	
	public void getInfo(String s1, String s2) {
		
		System.out.println(" -- getInfo - 3 -- ");
		System.out.printf("parameter --> s1 : %s, s2 : %s\n", s1, s2);
	}
	}
	
//}

결과값은.. 콘솔창 오류로 내 이클립스에는 안 뜨지만

childClass constructor

-- getInfo - 1 --

  i = 10

  b = true

  d = 1.23

  c = j

  s = java

-- getInfo - 2 --

parameter --> x : 10, y : 20

-- getInfo - 3 --

parameter --> s1 : str1, s2 : str2

이런 식으로 뜨는 듯

 

13-4 : 접근자

메서드를 호출할 때 접근자에 따라서 호출이 불가할 수 있다.

    객체
메서드 호출부 -> ㄴㄴ private 메서드 ↓ 
-> public 메서드 ↑
package pjtTest;

public class childClass {

	public String name; //메서드생성
	public String gender;
	public int age;
	
	public childClass() {
		System.out.println(" -- childClass constructor -- ");
	}
	
	public void setInfo(String n, String g, int a) {
		System.out.println(" -- setInfo() START -- ");
		
		name = n;
		gender = g;
		age = a;
	}
	
	public void getInfo() {
		System.out.println(" -- getInfo() START -- ");
		
		//메소드기본형태만 기능구현X
		System.out.println(" name : " + name);
		System.out.println(" gender : " + gender);
		System.out.println(" age : " + age);
		
	
	/*public void getInfo() { //중복되어도상관없지만매개변수차이있어야함
		System.out.println(" -- getInfo - 1 -- ");
	}
	
	public void getInfo(int x, int y) { //위는매개변수없지만얘는있음
		
		System.out.println(" -- getInfo - 2 -- ");
		System.out.printf("parameter --> x : %d, y : %d\n", x, y);
	}
	
	public void getInfo(String s1, String s2) {
		
		System.out.println(" -- getInfo - 3 -- ");
		System.out.printf("parameter --> s1 : %s, s2 : %s\n", s1, s2);
	}*/
	} 
	
	private void mySecret () {
		System.out.println(" -- mySecret() -- ");
	}
	
}
package pjtTest;

public class MainClass_childClass {

	public static void main(String[] args) {
		
		childClass child1 = new childClass();
		
		child1.getInfo();
		
		child1.mySecret(); //불가능함

	}	
		
}

public은 외부에서 호출할 수 있는 메서드

private는 내부에서만 쓸 수 있음

getInfo에서는 호출할 수 있지만 외부에서는 사용할 수 없는 메서드를 private 접근자라고 함