• 메소드
  • 메소드는 어떤 특정 작업을 수행하기 위한 명령문의 집합 { }의 안에 것 구현부=메서드라고 할 수 있음
  • 작성한 메소드를 호출 할 때에는 
    • 클래스명 , 사용할 이름 = new 클래스명(); ▶ 객체 생성
    • 사용할이름.메소드명(); ▶ 메소드 호출

  
Application1 app1 = new Application1();
app1.methodA();
System.out.println("main 종료");
}
  • methodA()를 호출 할 때는

  
public void methodA() {
System.out.println("A 호출");
methodB();
System.out.println("A 종료");
}
  • methodB()를 호출 할 때는

  
public void methodB() {
System.out.println("methodB 호출함...");
}
  • 객체는 
  • 1. 지역변수
  • 2.매개변수
  • 3.전역변수(필드)
  • 4.클래스(static)변수로 나뉜다.

지역변수는 그 지역에서만 선언한 메소드 블럭 내부에서만 사용이 가능함. 이것을 지역 변수 스코프라고 함

서로 다른 메소드간 공유해야 하는 값이 있으면 호출 시 사용하는 {}을 이용하여 값을 전달 할 수 있음

전달하는 값 = 전달인자, 메소드 선언 부 괄호 안에 전달 인자를 받기 위해 선언하는 변수 = 매개변수

 

그런데 강제 형변환을 이용하여 값을 전달 할 수 있음

그러나 형변환을 할 때 데이터 손실이 있음


  
long longAge = 30;
app3.testMethod((int)longAge);

연산 결과를 이용해서 값을 전달 할 수 있으며


  
app3.testMethod(age * 3);

테스트 메서드를 객체로 불러와 콘솔로그로 찍기도 가능

 

매개변수도 일종의 지역변수고 final 키워드를 사용 가능
 final 매개변수는 상수 네이밍 규칙을 선택적으로 따른다. (대문자로 작성해도 되고 소문자로 작성해도 된다)
gender = 'M';


  
public void testMethod(int age) {
System.out.println("당신의 나이는 " + age + "세 입니다.");
}
public void testMethod(String name, int age, final char gender) {
System.out.println("당신의 이름은 " + name + "이고, 나이는 " + age + "세 이며, 성별은 " + gender + "입니다.");
}

값의 개수를 맞지만 순서가 다르게 전달되면 호출이 안됨 (name, gender, age)


  
String name = "정";
int age = 25;
char gender = 'F';
Application4 app4 = new Application4();
app4.testMethod(name, age, gender);
  • retrun
    모든 메소드의 내부에는 return;이 존재
    void 메소드의 경우 return;를 작성 안해도 마지막줄에 알아서 컴파일러가 자동으로 추가를 해 줌
    return 현재 메소드 종료하고 호출한 구문으로 다시 돌아라가는 명령어
  • 컴파일러에 의해 자동으로 추가되는 구문 가장마지막에 작성해야 함 ▶ 가장마지막에 작성하지 않으면? 컴파일 에러 발생!!

  
public static void main(String[] args) {
}
public void testMethod() {
return;
//System.out.println("무언가 출력해주세요");
}
  • 반환 값이 있는 메소드만 호출하면 아무런 내용이 출력되지 않음
  • 반환 값이 있는 메소드를 호출 할 때는 반환 값을 변수에 담거나, 동작하고자 하는 메소드 안에서 호출하게 함
  • public 뒤에 바로 reture으로 가지고 갈 타입을 명시한다.
  • 아무 값도 리턴하지 않을 경우 void, 값을 반환하는 경우 반환 값의 자료형을 작성해야 함

  
public String testMethod() {
return "Hello World";
}
  • 객체 메소드로 계산기를 만들 경우
public class Application7 {

	public static void main(String[] args) {
		
		Application7 app7 = new Application7();
		
		int first = 100; // first 변수 초기화
		int second = 10; // second 변수 초기화
		
		System.out.println("두 수를 더한 결과 : " + app7.plusTwoNumbers(first, second));
		System.out.println("두 수를 뺀 결과 : " + app7.minusTwoNumbers(first, second));
		System.out.println("두 수를 곱한 결과 : " + app7.multipleTwoNumbers(first, second));
		System.out.println("두 수를 나눈 결과 : " + app7.divideTwoNumbers(first, second));
		//위의 메소드를 실행 할 때 내가 생성한 객체와(변수,변수) 적기
	}
	
	public int plusTwoNumbers(int first, int second) {
		
		return first + second;
	}
	... 이 아래로 쭉 쓰기
  • static 메소드를 호출 함 
  • 클래스명.메소드명(); 으로 선언 ▶ 그러나 동일한 클래스 내에 작성된 static 메소드는 클래스명이 생략이 가능
  • 삼항연산도 가능함 그런데 같은 값을 가지는 조건에 대해서는 처리하지 않음
public int minNumberOf(int first, int second) {
		
		return first > second ? second : first;
	}

 

  • 패키지는 서로 관련 있는 클래스 또는 인터페이스 등을 모아 하나의 그룹으로 단위를 구성하는 것임
  • 같은 패키지 내에서는 동일한 이름의 클래스를 만들 수 없음
  • 패키지가 다르면 동일한 이름의 클래스명을 만들 수 있는데 풀 클래스명은 패키지를 포함하기 때문

 

  • import
  • 매번 다른 클래스의 패키지명까지 기술하는 것 번거로움 하여 패키지 선언문과 클래스 선언문 사이에 작성하여
  • 어떤 패키지 내에 클래스를 사용할 것인지 미리 선언하는 효과를 받음
		Calculator calc = new Calculator();

 

SMALL

'java' 카테고리의 다른 글

java if,switch  (0) 2022.12.26
java API,SCANNER  (0) 2022.12.26
java 연산자2  (0) 2022.12.26
java 연산자 1  (0) 2022.12.25
JAVA 변수, 다양한 자료형,참조형  (0) 2022.12.20

+ Recent posts