JAVA DAY14 - 객체지향 프로그래밍 Ⅰ - 1 메서드

어뮤즈온·2020년 12월 2일
0

초급자바

목록 보기
20/31

객체지향 프로그래밍(Object Oriented Programming)

  • 프로그래밍을 단순히 코드의 연속으로 보는 것이 아닌 객체간의 상호작용으로 보는 것
  • 코드의 재사용성이 높고 유지보수가 용이하다.

용어정리

  • 지역변수 : 메서드 안에서만 사용하는 변수
  • 전역변수 : 클래스 전체 영역에서 사용하는 변수로 초기화하지 않아도 기본값으로 초기화된다.

메서드

변수를 가지고 할 일

  • 선언 방법 : 리턴타입 메서드명(파라미터){}
  • 파라미터(매개변수) : 실행에 필요한 정보
  • 리턴타입(반환타입) : 실행 후 돌려줘야하는 결과물
    ** 리턴타입이 있는경우 return을 해줘야하며, 리턴타입이 없는 void에서 return은 메서드를 종료시키는 역할을 한다.
//SampleClass라는 클래스에 변수, 메서드 생성
public class SampleClass {
	public static void main(String[] args) {
		int local = 10; //지역변수
	}
	
	int field; //전역변수 
	
	void method1(){ //메서드
		System.out.println("파라미터도 리턴타입도 없는 메서드");
		return;//메서드를 종료시킨다.
	}
	
	String method2(int parameter){
		return parameter + " 를 받아 명령을 수행하고 결과물을 리턴하는 메서드";
		//parameter가 int타입이지만 문자열과 더해져서 결과는 문자열 타입이다.
	}
	
}

//새로운 OPP라는 클래스에서 SampleClass에서 만든 변수와 메서드 사용
public static void main(String[] args) {
	SampleClass sc = new SampleClass();
    	//객체생성, 메모리에 올라가고 저장된 주소를 반환한다.
		
	System.out.println(sc.field); // 0 출력 : 전역변수는 기본값이 출력
		
	sc.method1(); //파라미터도 리턴타입도 없는 메서드 출력
		
	String returnValue = sc.method2(5); 
	System.out.println(returnValue);
    //5 를 받아 명령을 수행하고 결과물을 리턴하는 메서드 출력
}
//출력 순서 입력해보기
public class SampleClass {
	void flowTest1(){
		System.out.println("flowTest1 시작 : 1");
		flowTest3();
		System.out.println("flowTest1 종료 : 6");
	}
	
	void flowTest2(){
		System.out.println("flowTest2 시작 : 3");
		System.out.println("flowTest2 종료 : 4");
	}
	
	void flowTest3(){
		System.out.println("flowTest3 시작 : 2");
		flowTest2();
		System.out.println("flowTest3 종료 : 5");
	}
	
}

public static void main(String[] args) {
	sc.flowTest1();
       /* 출력
	*  flowTest1 시작 : 1
	*  flowTest3 시작 : 2
	*  flowTest2 시작 : 3
	*  flowTest2 종료 : 4
	*  flowTest3 종료 : 5
	*  flowTest1 종료 : 6
	*/
}

문제

//계산기 프로그램을 만들어보시오
//1. 123456 + 654321
//2. 1번의 결과값 * 123456
//3. 2번의 결과값 / 123456
//4. 3번의 결과값 - 654321
//5. 4번의 결과값 % 123456
public class Calculator {
	
	double add(double a, double b){
		return a + b;
	}
	
	double subtract(double a, double b){
		return a - b;
	}
	
	double multi(double a, double b){
		return a * b;
	}
	
	double divied(double a, double b){
		return a / b;
	}
	
	double mod(double a, double b){
		return a % b;
	} 
}

public static void main(String[] args) {
	Calculator cal = new Calculator();
		
	double result = cal.add(123456, 654321);
	result = cal.multi(result, 123456);
	result = cal.divied(result, 123456);
	result = cal.subtract(result, 654321);
	result = cal.mod(result,123456);
		
	System.out.println(result);//0.0 출력
}
profile
Hello, world!

0개의 댓글