본문 바로가기
코리아 IT아카데미/Java

4일차 | 함수와 메서드

by Sharon kim 2021. 10. 21.
복습 순서 메모
chapter02
>ch01
Warrior.java
WarriorMainTest.java
Student.java
StudentMainTest1.java
StudentMainTest2.java
Order.java
UserInfo.java
MainTest1.java
>ch02
>ch03
 

클래스 만들기, 변수 선언

package ch01;

//클래스는 객체를 만들기 전 설계도면입니다.
public class Warrior {
	
	//기본 데이터 타입 8가지 
	//참조 타입
	int height; //멤버 변수 (heap / 클래스 안 위치),
				//데이터타입 : int
	int power;
	
	String color; //참조 타입 문자열 -->"안녕하세요"
	String name;
	
}//end of class

클래스 사용하는 메인함수, 변수 사용

package ch01;

public class WarriorMainTest {

	//설계된 클래스를 사용하는 쪽 코딩
	public static void main(String[] args) {
		
		int height;//지역변수(stack/ 함수안, 메서드 안 위치),
				//데이터 타입 : int
		
		Warrior w1 = new Warrior();
		//참조 타입에는 주소값이 담긴다.
		w1.height = 200;
		w1.power = 100;
		w1.name = "전사";
		w1.color = "초록색";
		
		System.out.println(w1.height);
		System.out.println(w1.power);
		System.out.println(w1.name);
		System.out.println(w1.color);
		
		System.out.println("--------------");
		Warrior w2 = new Warrior();
		w2.height = 100;
		w2.power = 50;
		w2.name = "작은 천사";
		w2.color = "빨간색";
		
		System.out.println(w2.height);
		System.out.println(w2.power);
		System.out.println(w2.name);
		System.out.println(w2.color);

	}//end of main

}//end of class

클래스 만들기2, 변수 선언2

package ch01;

//클래스란 객체를 만들기 전 설계도면 입니다.
//붕어빵 틀 
public class Student {

	//상태(멤버변수)
	String name;
	int height;
	int weight;
	int grade;
	
}

클래스 사용하는 메인함수2, 변수 사용2

package ch01;

//설계된 학생 클래스를 사용해 보는 입장
public class StudentMainTest1 {
	
	//main function_start of code
	public static void main(String[] args) {
		
		Student s1;//지역변수 구분 
		Student s2;
		
		s1 = new Student();
		s2 = new Student();
		//참조변수 //참조값
		System.out.println(s1);
		System.out.println(s2);

	}//end of main

}//end of class

변수 사용 심화

package ch01;

public class StudentMainTest2 {

	//main function_start of code
	public static void main(String[] args) {
		
		Student student1 = new Student();
		//1.접근해서 name, height, weight, grade 값을 줘서 
		//화면에 출력해주라
		student1.name = "영영영";
		student1.weight = 10;
		student1.height = 20;
		student1.grade = 30;
		
		System.out.println(student1.name);
		System.out.println(student1.weight);
		System.out.println(student1.height);
		System.out.println(student1.grade);
		
		System.out.println("----------------");
		
		Student student2 = new Student();
		//1.접근해서 name, height, weight, grade 값을 줘서
		//화면에 출력해주라
		student2.name = "일일일";
		student2.weight = 11;
		student2.height = 22;
		student2.grade = 33;
		
		System.out.println(student2.name);
		System.out.println(student2.weight);
		System.out.println(student2.height);
		System.out.println(student2.grade);
		
	}//end of main

}//end of class

클래스 생성1

package ch01;

public class Order {
	
	int orderId;
	String buyerId;
	String sellerId;
	int productId;
	String orderDate;

}//end of class

클래스 생성2

package ch01;
  			//대문자 camel notation
public class UserInfo {

	String userId;
	String userPassword;
	String userName;
	String userAddress;
	long phoneNumber;//21억 --> 01012341234
	//실무에서는 폰넘버 String 쓴다

}

클래스 사용

package ch01;

public class MainTest1 {
	//main function_start of code
	public static void main(String[] args) {
		
	Order order1 = new Order();
	//멤버 변수의 특성. 값을 활성하지 않아도 초기값을 가짐
	//int -> 0 , 참조타입 (대문자로 시작하는 데이터 타입)은 null
	System.out.println(order1.orderId);
	System.out.println(order1.buyerId);
	System.out.println(order1.sellerId);
	System.out.println(order1.productId);
	System.out.println(order1.orderDate);
		
	System.out.println("-----------------");
	//1. order1 값을 넣어 화면에 출력
	
	order1.orderId = 2110210001;
	order1.buyerId = "buyer";
	order1.sellerId = "seller";
	order1.productId = 4567890;
	order1.orderDate = "20211021";
	
	System.out.println(order1.orderId);
	System.out.println(order1.buyerId);
	System.out.println(order1.sellerId);
	System.out.println(order1.productId);
	System.out.println(order1.orderDate);
	
	System.out.println("-----------------");
	//2. userInfo1 값을 넣어 화면에 출력
	
	UserInfo userInfo1 = new UserInfo();
	
	userInfo1.phoneNumber = 1234123412;
	userInfo1.userAddress = "OO시 OO구 OO동 123-4번지 5층";
	userInfo1.userId = "koreajava";
	userInfo1.userName = "코리아 IT";
	userInfo1.userPassword ="koreajava2021";
	
	System.out.println(userInfo1.phoneNumber);
	System.out.println(userInfo1.userAddress);
	System.out.println(userInfo1.userId);
	System.out.println(userInfo1.userName);
	System.out.println(userInfo1.userPassword);
	
	}//end of main

}//end of class

메인 함수 사용

package ch02;

public class FunctionMainTest1 {
	
	//main function_start of code
	public static void main(String[] args) {

		//함수 사용 방법 (모양 맞추기)
		int addResult1 = add(10,77);
		System.out.println(addResult1);
		
		int addResult2 = add(10,30);
		System.out.println(addResult2);
		
	}//end of main
	
	//add 함수를 생성
	
	public static int add(int num1, int num2) {
		
		int result;
		result = num1 + num2;
		return result; //리턴을 만났을 때 실행에 제어권 반환
	}
}//end of class

메인 함수 사용2

package ch02;

public class FunctionMainTest2 {

	public static void main(String[] args) {
		//함수 사용하는 방법(모양 맞추기)
		//1. 
			sayHello("반갑습니다.");
		//2. 
			int sum = calcSum();
			System.out.println("sum : "+ sum);
		//3.
			double total = addNum(42.234, 13.4);
			System.out.println("total : "+ total);
		
      //---------만든 함수를 사용해 봅시다.--------
			//Q1.
			int result1 = intAdd(2, 4, 5);
			System.out.println(result1);
				
			//Q2.
			double result2 = doubleAdd(34.4, 12.2);
			System.out.println(result2);
			
			//Q3.
			printArticle("오늘 수업도 화이팅");
	
	}// end of main
	
	//1. 반환 값이 없는 함수 설계하기
	public static void sayHello(String greeting) {
		System.out.println(greeting);
	}
	//2. 매개변수가 없는 함수 만들기 -> 반환값은 있음
	public static int calcSum() {
		int sum = 0;
		int i;
		for(i = 0; i <=100; i++) {
			//sum = sum + i;
			sum += i;
		}
		return sum;
	}
	
	//3. 반환 값이 있고 매개변수를 받는 함수 만들기
	public static double addNum(double n1, double n2) {
		
		double result = 0.0;
		result = n1 + n2;
		return result;
	}
	
      //--------------함수를 만들어 봅시다.-------------
	
	//Q1. 리턴값 int, 매개변수 n1,n2,n3이름 ->intAdd
	public static int intAdd(int n1, int n2, int n3) {
		int sum = n1 + n2 + n3;//
		return n1 + n2 + n3;
	}
	//Q2. 리턴값 double 매개변수 d1, d2 이름 -> doubleAdd
	public static double doubleAdd(double d1, double d2) {
		return d1 + d2;
	}
	//Q3. 리턴값 없음 매개변수 string article 이름 -> printArticle
	public static void printArticle(String article) {
		System.out.println(article);
	}
		
}//end of class

사용할 클래스 설계

package ch03;

//클래스를 설계하는 입장
public class Student {
//접근지시제어자
	//멤버변수
	public int studentID;
	public String studentName;
	public String address;
	
	//메서드(멤버변수를 이용해서 객체에 기능을 만들어 낸다.)
	public void showStudentInfo() {
		System.out.println(studentName + " , " + address);
	}
	public String getStudentName() {
		return studentName;
	}
	
	//메서드란 
	//객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수
	//멤버함수라고도 함
	//메서드를 구현함으로써 객체의 기능이 구현됩니다.
	
	//1. 시험을 친다.
	//ex)이순신 학생이 시험을 친다.
	public void takeTest() {
		System.out.println(studentName + "학생이 시험을 친다");
	}
	//2.청소를 한다.
	public void cleanUp() {
		System.out.println(studentName + "학생이 청소를 합니다.");
	}
}//end of class

클래스 사용

package ch03;

//클래스를 사용하는 쪽 코딩
public class StudentMainTest {

	public static void main(String[] args) {

		Student studentLee = new Student();
		studentLee.studentName = "이순신";
		studentLee.address = "인천";
		
		studentLee.showStudentInfo();
		studentLee.takeTest();
		studentLee.cleanUp();
		
		Student studentKim = new Student();
		studentKim.studentName = "김유신";
		studentKim.address = "경주";
		
		studentKim.showStudentInfo();
		studentKim.takeTest();
		studentKim.cleanUp();
		
		System.out.println("------------------");
		
		String name1 = studentKim.getStudentName();
		System.out.println("name1 : " + name1);
		String name2 = studentLee.getStudentName();
		System.out.println("name2 : " + name2);
	}//end of main

}//end of class

사용할 클래스 설계2

package ch03;

public class Warrior {
	
	//멤버변수
	char level;
	String name;
	int loseHp;
	String attack1;
	String attack2;
	String attack3;
	
	//멤버함수
	public void attack() {
		System.out.println(name + "의 현재 level(은)는 " 
				+ level + "입니다." );
		System.out.println(name + "(이)가 몬스터를 " + attack1 + 
				"로 공격했습니다." );
		System.out.println(name + "(이)가 몬스터를 " + attack2 + 
				"로 공격했습니다." );
		
		System.out.println("몬스터가 " + name+ "(을)를 공격하여 " 
				+ "hp가 " + loseHp + " 깎였습니다." );
		System.out.println(name + "(이)가 몬스터를 " + attack3 + 
				"(으)로 공격했습니다." );
		System.out.println(name + "(이)가 승리했습니다.\n" +
				"level up하였습니다." );
	}
}//end of class

클래스 사용2 : 과제

package ch03;

public class WarriorMainTest {

	public static void main(String[] args) {
		// 직접 코드를 실행 시켜 주세요
		Warrior warrior1 = new Warrior();
		
		warrior1.level = '1';
		warrior1.name = "용감한 전사";
		warrior1.loseHp = 100;
		warrior1.attack1 = "육중한 일격";
		warrior1.attack2 = "관절 파괴";
		warrior1.attack3 = "광폭화";
		
		warrior1.attack();
	}
}

수업내용

[출처] https://blog.naver.com/devnote1 작성자 devnote1