Presentation is loading. Please wait.

Presentation is loading. Please wait.

제 4 장 클래스 작성 4-1 LAB.

Similar presentations


Presentation on theme: "제 4 장 클래스 작성 4-1 LAB."— Presentation transcript:

1 제 4 장 클래스 작성 4-1 LAB

2 Contents Class 와 method 작성해보기 ① Class 와 method 작성해보기 ②

3 Class와 method 작성해보기 ① Account.java, ManageAccount.java
// ************************************************************* // Account class는 예금, 출금, 명의변경, 수수료부과, // 계좌 정리 출력하는 method를 가지고 있다. public class Account { private double balance; private String name; private long acctNum; // // Constructor - balance, owner, account number 초기화 public Account (double initBal, String owner, long number) balance = initBal; name = owner; acctNum = number; }

4 // ---------------------------------------------------------. //
// // 예금잔액을 통해 출금 가능 여부를 체크한다. // 예금잔액 > 인출금액 : 잔액에서 인출 금액을 차감 // 예금잔액 < 인출금액 : message 출력 // public void withdraw (double amount) { if (balance >= amount) balance -= amount; else System.out.println ("Insufficient funds"); } // // 입금시 예금 잔액 조정 // public void deposit (double amount) { balance += amount; } // // 예금잔액 반환 // public double getBalance() { return balance; }

5 // ---------------------------------------------------------. //
// // string(name, account number, balance를 포함) 반환 // public String toString() { } // // 세금 부과 - 10$ public void chargeFee() { } // 계좌의 명의 변경 public void changeName (String newName)

6 // *************************************************************
// ManageAccount.java // // ManageAccount Class를 이용하여 Sally 와 Joe의 계좌를 // 생성하고 관리한다. public class ManageAccounts { public static void main(String[] args) Account acct1, acct2; // Sally의 $1000 계좌 생성. acct1 = new Account (1000, "Sally", 1111); // Joe의 $500 계좌 생성. // Joe의 계좌에 $100 예금하기. // Joe의 예금 잔액 출력하기.(get Balance() 사용) // Sally의 계좌에서 50$ 인출하기. // Sally의 예금 잔액 출력하기.(get Balance() 사용) // 두 계좌의 세금 부과하기. // Joe의 계좌에서 이름을 Joseph로 바꾸기. // 두 계좌의 내역을(입/출금, 세금) 출력하기. }

7 Class와 method 작성해보기 ① Cont.
Account.java를 완성해보자. toString(), chargeFee(), changeName() 을 완성하라. chargeFee()를 수정하라. return 값을 void  new balance 로!! ManageAccount.java를 완성해보자. 주석의 설명을 따른다.

8 Class와 method 작성해보기 ① Cont.
ManageAccount.java를 수정해보자. chargeFee를 call한 후, balance를 출력하도록!! 수정 전 deposit/withdraw 후 getBalance()에서 Balance return. 수정 후 deposit/withdraw 후 chargeFee()에서 Balance return!! 이 때, balance를 출력하는 방법에는 2가지가 있다. balance를 변수에 저장한 다음, 변수를 출력. chargeFee()에 출력문 포함.

9 Class와 method 작성해보기 ② Student.java, Grades.java
// ************************************************************** // Student.java // // Student class that stores name, score on test 1, and // score on test 2. Methods prompt for and read in grades, // compute the average, and return a string containing student's info. import java.util.Scanner; public class Student { // instance data 선언 - 학생 이름, test 1 점수, test 2 점수 // // Constructor public Student (String studentName) // Constructor body 추가 }

10 // ---------------------------------------------------------
// inputGrades : 학생의 test grade를 입력받음. public void inputGrades() { // inputGrades의 body 추가 } // // getAverage : 학생의 test average를 계산하고 반환. // getAverage의 header 추가 // getAverage의 body 추가 // getName : 학생이름을 출력. // getName의 header 추가 // getName의 body 추가

11 // *************************************************************
// Grades.java // // Student class를 이용하여 두 학생의 test grade와 average를 // 가져온다. public class Grades { public static void main(String[] args) Student student1 = new Student ("Mary"); // student2, "Mike"를 생성. // Mary의 grade를 입력받는다. // Mary의 average를 출력한다. System.out.println(); // Mike의 grade를 입력받는다. // Mike의 average를 출력한다. }

12 Class와 method 작성해보기 ② Cont.
Student.java를 완성해보자. 주석의 설명을 따른다. 입력을 받기 위한 Scanner object를 생성해야 함. Grades.java를 완성해보자. average 출력 부분.  name과 average를 출력한다. 예) The Average for Joe is 87.

13 Class와 method 작성해보기 ② Cont.
Grades.java를 수정해보자. 학생 변수의 값을 직접 출력해보자. 예) System.out.println (“Student 1 : “ + student1);  컴파일 후 결과를 살펴보자. Student.java를 수정해보자. toString()을 추가한다. System.out.println을 사용하지 않는다. return 값 : String (학생 이름과 점수) 예) Name : Joe Test1 : 85 Test2 : 91 주의 : Grades.java는 수정하지 않는다. toString()을 명시적으로 호출하지 않는다.

14 Class와 method 작성해보기 ③ BandBooster class를 작성해보자. Constructor
parameter : 후원자 이름 (String) boxesSold = 0 으로 set. Data 선언 – instance data name (String) boxesSold (Integer) Method 선언 getName() : 후원자 이름을 return. parameter 없음. updateSales() : parameter 1개. – 추가 판매한 box 개수 toString() : String을 return. – 후원자 이름, 판매한 box 개수 예) Joe : 16 boxes.

15 Class와 method 작성해보기 ③ Cont.
bandbooster 객체를 이용하여 2명의 후원자의 3주간 판매 실적을 알아보는 class를 작성하여라. 후원자 2명의 이름을 입력 받고, 각각의 객체를 구성. 각 후원자가 각 주에 판매한 박스 개수를 입력 받는다. 예) “Enter the number of boxes sold by Joe this week: “  각 후원자당 판매한 박스 개수를 3번 입력 받음. updateSales()를 이용하여 update한다. 후원자의 이름과 총 판매량을 출력한다. - toString()을 사용한다.

16 Class와 method 작성해보기 ④ Name class를 작성해보자. Constructor Method
public Name(String first, String middle, String last) 주의 : 대/소문자로 바꾸지 말고, 있는 그대로 사용할 것!! Method public String getFirst : return first name public String getMiddle : return middle name public String getLast : return last name public String firstMiddleLast() : return full name 예 ) “ Mary Jane Smith”

17 Class와 method 작성해보기 ④ Cont.
public String LastfirstMiddle() : return full name 예) “ Smith, Mary Jane” public boolean equals() return true : 다름 사람의 이름과 비교해서 같을 때. 힌트 : String method - equalsIgnoreCase() 사용!  equals()와 비슷하나 대소문자 구분 하지 않음. public String initials() : return initials. - 각 부분의 첫 번째 글자, 모두 대문자. 힌트 : charAt 대신 substring을 사용하라. public int length() : return total number of char. - full name의 총 문자 수, space 포함하지 않음!

18 Class와 method 작성해보기 ④ Cont.
TestNames.java를 작성해보자. 두 사람의 이름을 입력 받는다. First, middle, last name을 각각 입력 받는다. 두 사람 각각에 대해 객체를 생성한다. Name class의 method를 사용한다. 각 이름에 대해 아래 사항을 출력한다. first – middle – last version last – first – middle version initials length comparison result : same or different


Download ppt "제 4 장 클래스 작성 4-1 LAB."

Similar presentations


Ads by Google