나혼자공부시간(평일저녁,주말,휴일때)
메소드 호출,선언:개념 제대로 알고 가기/지역변수,전역변수,정적변수 차이점
하리보쮈리
2023. 3. 20. 22:28
package practice;
public class Calculator {
//리턴값이 없는 메소드 선언
void powerOn() {
System.out.println("power on!");
}
//리턴값이 없는 메소드 선언
void powerOff() {
System.out.println("power offs");
}
//호출 시 두 정수 값을 전달받고,
//호출한 곳으로 결과값 int를 리턴하는 메소드 선언
int plus(int x, int y) {
int result = x + y;
return result; //리턴값 지정;
}
//호출 시 두 정수 값을 전달받고,
//호출한 곳으로 결과값 double를 리턴하는 메소드 선언
double divide(int x, int y) {
double result = (double)x / (double)y;
return result;
}
}
객체내부(설계도)
package practice;
public class CalculatorExample {
public static void main(String[] args) {
//calculator 객체 생성
Calculator myCar = new Calculator();
//리턴값이 없는 powerOn() 메소드 호출
myCar.powerOn();
//plus메소드 호출 시 5,6을 매개값으로 제공하고,
//덧셈 결과를 리턴 받아 result1 변수에 대입
int result1 = myCar.plus(5,6);
System.out.println("result1: " + result1);
int x = 10;
int y = 4;
//divide()메소드 호출 시 변수 x와 변수y의 값을 매개값으로 제공하고,
//나눗셈 결과를 리턴 받아 result2 변수에 대입
double result2 = myCar.divide(x, y);
System.out.println("result2 :" + result2);
}
}
외부객체(호출)
가변길이 매개변수 배우기
package practice;
public class Computer {
//가변길이 매개변수를 갑는 메소드 선언
int sum(int...values) {
//sum 변수 선언
int sum = 0;
//values는 배열 타입의 변수처럼 사용
for(int i = 0; i<values.length; i++) {
sum +=values[i];
}
//합산 결과를 리턴
return sum;
}
}
객체내부(설계도)
package practice;
public class ComputerExample {
public static void main(String[] args) {
//computer 객체 생성
Computer myCom = new Computer();
//sum()메소드 호출 시 매개값 1,2,3을 제공하고
//합산 결과를 리턴 받아 result1 변수에 대입
int result1 = myCom.sum(1,2,3);
System.out.println("result1: " + result1);
//sum()메소드 호출 시 매개값 1,2,3,4,5을 제공하고
//합산 결과를 리턴 받아 result2 변수에 대입
int result2 = myCom.sum(1,2,3,4,5);
System.out.println("result2: " + result2);
//sum()메소드 호출 시 배열을 제공하고
//합산 결과를 리턴 받아 result3 변수에 대입
int[] values = {1,2,3,4,5};
int result3 = myCom.sum(values);
System.out.println("result3: " + result3);
//sum()메소드 호출 시 배열을 제공하고
//합산 결과를 리턴 받아 result3 변수에 대입
int result4 = myCom.sum(new int[]{1,2,3,4,5});
System.out.println("result4: " + result4);
}
}
외부객체(호출)
Return문
ex)기름 얼마나 있는지
package practice;
public class Car {
//필드선언
int gas;
//리턴값이 없는 메소드로 매개값을 받아서 gas 필드값을 변경
void setGas(int gas) {
this.gas = gas;
}
//리턴값이 boolean인 메소드로 gas필드값이 0이면 false를, 0이 아니면 true를 리턴
boolean isLeftGas() {
if(gas==0){
System.out.println("There is no Gas");
return false; // false를 리턴하고 메소드 종료
}
System.out.println("There is Gas left");
return true; // true를 리턴하고 메소드 종료
}
//리턴값이 없는 메소드로 gas필드값이 0이면 return문으로 메소드를 종료
void run() {
while (true) {
if(gas > 0) {
System.out.println("달립니다.(gas잔량: "+gas+")");
gas -=1;
}else {
System.out.println("멈춥니다.(gas잔량: "+gas+")");
return; //메소드 종료
}
}
}
}
객체내부(설계도)
package practice;
public class CarExample {
public static void main(String[] args) {
//객체 생성
Car myCar = new Car();
//리턴값이 없는 setGas() 메소드 호출
myCar.setGas(5);
//isLeftGas() 메소드를 호출해서 받은 리턴값이 true일 경우 if블록 실행
if(myCar.isLeftGas()){
System.out.println("출발합니다.");
//리턴값이 없는 run()메소드 호출
myCar.run();
}
System.out.println("gas를 주입하십쇼");
}
}
외부객체(호출)
메소드 오버로딩
ex)사각형 넓이 구하기
package practice;
public class Calculator {
//정사각형 넓이
double areaRectangle(double width){
return width * width;
}
//직사각형 넓이
double areaRectangle(double width, double height){
return width * height;기
}
}
객체내부(설계도)
package practice;
public class CalculatorExample {
public static void main(String[] args) {
//calculator 객체 생성
Calculator myCar = new Calculator();
//정사각형 넓이 구하기
double result1 = myCar.areaRectangle(10);
System.out.println(result1);
//직사각형 넓이 구하기
double result2 = myCar.areaRectangle(30,20);
System.out.println(result2);
}
}
외부객체(호출)