생활코딩 JAVA - method

치즈말랑이·2021년 9월 27일
0
post-thumbnail

1. 수업소개

method(함수 function) : 정리정돈의 도구

2. 이미 익숙한 메소드

3. 메소드의 기본 형식

refactor의 기본은 method이다.


public class WhyMethod {
	public static void printTwoTimesA() {
		System.out.println("-");
		System.out.println("A");
		System.out.println("A");
	}
	public static void main(String[] args) {

		
		// 100000000
		printTwoTimesA();
		// 100000000
		printTwoTimesA();
		// 100000000 

	}

}

4. 메소드의 입력

메소드는 작은 프로그램이라고 할 수 잇다.
입력값에 따라서 다양하게 동작하는 프로그램을 만들 수 있는 것처럼 메소드도 입력값을 받아서 처리할 수 있도록 개선할 수 있다.

main 메소드가 있어야 자바는 main 메소드를 호출해서 우리가 실행하고싶은 프로그램을 실행시킨다.
String[] 문자열 배열
args

text, delimeter 등을 매개변수(parameter)라고 부른다.
메소드 바깥속에서 메소드 안으로 흘려보내주는 역할하기 때문
주입한 구체적인 값 ("a" 같은거) : arguments (인자)


public class WhyMethod {
									// 매개변수
	public static void printTwoTimesA(String text, String delimiter) {
		System.out.println(delimiter);
		System.out.println(text);
		System.out.println(text);
	}
	public static void main(String[] args) {

		
					// 인자, argument
		printTwoTimesA("a", "-");
		// 100000000
		printTwoTimesA("b", "*");
		// 100000000 

	}

}

5. 메소드의 출력

import java.io.FileWriter;
import java.io.IOException;

public class WhyMethod {
	
	public static void printTwoTimesA(String text, String delimiter) {
		System.out.println(delimiter);
		System.out.println(text);
		System.out.println(text);
	}
	
	public static String twoTimes(String text, String delimiter) {
		String out = "";
		out = out + delimiter + "\n";
		out = out + text + "\n"; // 왜 윗줄의 out을 안가져오는걸까?
		out = out + text + "\n";
		return out;
		
	}
	
	public static void writeFileTwoTimes(String text, String delimiter) throws IOException {
		FileWriter fw = new FileWriter("output.text");
		fw.write(delimiter+"\n");
		fw.write(text+"\n");
		fw.write(text+"\n");
		fw.close();
	}
	
	public static void main(String[] args) throws IOException {

		
		// 100000000
		printTwoTimesA("a", "-");
		System.out.println(twoTimes("a","-"));
		// 100000000
		printTwoTimesA("b", "*");
		// 100000000 
		
		writeFileTwoTimes("a", "*");
		FileWriter fw = new FileWriter("out.txt");
		fw.write(twoTimes("a", "*"));
		fw.close();
//		Email.send("egoing@a.com", "two times a", twoTimes("a","&"));

	}

}


public class OutputMethod {
	
	public static String a() {
		// ...
		return "a"; // 이 return 할 "a" 값이 a()의 값이 된다.
	}
	
	public static int one() {
		// ...
		return 1; 
		/** 
		 * return 뒤에 있는 값이 그 메소드의 실행 값이 된다. 
		 * return 값은 그 메소드를 종료시키는 역할도 한다.
		 * return 뒤에 아무리 많은 값이 있어도 return에서 종료됨.
		 * 메소드를 끝낼때도 return 사용됨.
		 */
		
	}
	// void는 return 값이 없는 메소드
	public static void main(String[] args) {


		System.out.println(a());
		System.out.println(one());
		
	}

}

6. 메소드의 활용


public class AccountingApp2 {
	//공급가액
	public static double valueOfSupply = 10000.0;
	//부가가치세율
	public static double vatRate = 0.1;
		
	public static double getVAT() {
		return valueOfSupply*vatRate;
	}
	
	public static double getTotal() {
		return valueOfSupply+getVAT();
	}
	public static double expenseRate = 0.3;
	
	public static void main(String[] args) {
		
		double expense = valueOfSupply*expenseRate;
		double income = valueOfSupply-expense;
		double dividend1 = income*0.5;
		double dividend2 = income*0.3;
		double dividend3 = income*0.2;
		
		System.out.println("Value of supply : " +valueOfSupply);
		System.out.println("VAT : " +getVAT());
		System.out.println("Total : " +getTotal());
		System.out.println("Expense : " +expense);
		System.out.println("Income : " +income);
		System.out.println("Dividend : " +dividend1);
		System.out.println("Dividend : " +dividend2);
		System.out.println("Dividend : " +dividend3);
	}

}

7. 수업을 마치며

다음은 객체 지향 프로그래밍

profile
공부일기

0개의 댓글