Java學習記錄(補充二:面對對象基礎復習,習題)
阿新 • • 發佈:2017-08-21
補充 實例化 ntc println stat 初始 sys order 成績
求3(可調整)個學員成績的和或平均分或兩者都具
package day5; import java.util.Scanner; public class Score { //構造函數 public Score(){ System.out.println("實例化對象調用了我"); } int sum; double avg; // 定義求和的方法 public int sum() { Scanner scanner = new Scanner(System.in); for (int i = 0; i < 3; i++) { System.out.println("請輸入第" + (i + 1) + "個學員成績"); int score = scanner.nextInt(); sum += score; } return sum; } //求平均分的方法 凡是方法名報錯都是沒有返回值return; public double avg(){ double result = sum()/3; return result; } //既求和又求平均分的方法 public double[] getSumAndAvg(){double[] results = new double[2]; Scanner scanner = new Scanner(System.in); for (int i = 0; i < 3; i++) { System.out.println("請輸入第" + (i + 1) + "個學員成績"); int score = scanner.nextInt(); sum += score; } results[0] = sum; results[1] = sum/3; return results; } }
package day5; import java.util.Arrays; public class ScoreCalc { public static void main(String[] args) { // 由類來產生對象 (實例化)會調用你的構造函數 Score score1 = new Score(); // 對象生成以後, 可以調用對象裏的各個屬性和方法 System.out.println(score1.sum()); System.out.println(Arrays.toString(score1.getSumAndAvg())); } }
結果圖:
求三門課的和及平均分(構造有參函數)
package day5_1; public class Score { // 屬性 int math;// 數學成績 int chinese;// 語文成績 int english;// 英語成績 int sum;// 總分 double avg;// 平均分 // 構造函數 與類同名,沒有返回值 作用:數據的初始化!!! public Score(int math, int chinese, int english) { this.math = math; this.chinese = chinese; this.english = english; } // 方法 // 求和 public int sum() { sum = math + chinese + english; return sum; } // 求平均分 public double avg() { avg = (math + chinese + english) / 3.0; return avg; } }
package day5_1; import java.util.Scanner; public class ScoreTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請輸入數學成績"); int math = scanner.nextInt(); System.out.println("請輸入語文成績"); int chinese = scanner.nextInt(); System.out.println("請輸入英語成績"); int english = scanner.nextInt(); //單純的實例化對象 // Score score = new Score(); // score.math = math; // score.chinese = chinese; // score.english = english; //實例化兌現過的同時進行數據的初始化 Score score = new Score(math,chinese,english); int result1 = score.sum(); double result2 = score.avg(); System.out.println(result1); System.out.println(result2); } }
結果圖:
學生名字排序(創建一個數組對象)
package day5_2; import java.util.Arrays; public class NameSort { //2:把方法封裝 public String[] sort(String[] unOrderArr) { Arrays.sort(unOrderArr); return unOrderArr; } }
package day5_2; import java.util.Arrays; import java.util.Scanner; public class NameSortTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //1:準備數據 String names[]= new String[5]; for (int i = 0; i < 5; i++) { System.out.println("請一次輸入第" + (i + 1) + "個學生名字"); names[i] = scanner.next(); } //3:調用類的方法(先實例化出對象) NameSort sortName = new NameSort(); String[] orderArr = sortName.sort(names); System.out.println(Arrays.toString(orderArr)); } }
結果圖:
單個對象的三門成績求均分(傳輸對象)
package day5_2; public class Student { int math; int chinese; int english; public Student(int math,int chinese,int english){ this.math = math; this.chinese = chinese; this.english = english; } }
package day5_2;
public class StudentCalc {
//創建一個對象(Student)
public double avg(Student student){
int mathScore = student.math;
int chineseScore = student.chinese;
int englishScore = student.english;
double avg = (mathScore+chineseScore+englishScore)/3;
return avg;
}
}
package day5_2;
import java.util.Scanner;
public class StudentTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入數學成績");
int math = scanner.nextInt();
System.out.println("請輸入語文成績");
int chinese = scanner.nextInt();
System.out.println("請輸入英語成績");
int english = scanner.nextInt();
Student zhangSan = new Student(math, chinese, english);
StudentCalc calc = new StudentCalc();
System.out.println("平均分:"+calc.avg(zhangSan));
}
}
結果圖:
多個對象的姓名,年齡,身高,總身高平均(傳輸對象數組)
package day5_3;
(構造一個有參函數) public class Student { String name; int age; int height; public Student(String name,int age,int height){ this.name = name; this.age = age; this.height = height; } }
package day5_3; public class StudentManager { //創建一個對象數組(Student[]) public int avg(Student[] students) { int sum = 0; for (int i = 0; i < students.length; i++) { sum += students[i].height; } return sum/students.length; } }
package day5_3; import java.util.Scanner; public class StudentManagerTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Student[] students = new Student[2]; for (int i = 0; i < students.length; i++) { System.out.println("輸入姓名"); String name = scanner.next(); System.out.println("請輸入年齡"); int age = scanner.nextInt(); System.out.println("請輸入身高"); int height = scanner.nextInt(); Student student = new Student(name, age, height); students[i] = student; } StudentManager calc = new StudentManager(); System.out.println(calc.avg(students)); } }
結果圖:
一次傳遞多個參數
package Day5_4;
public class User { String nick; String pwd; int age; String sex; String resignDate; String degree; public User(String nick,String pwd,int age,String sex,String resignDate,String degree){ this.nick =nick; this.pwd = pwd; this.age = age; this.resignDate = resignDate; this.sex = sex; this.degree = degree; } public void showMessage() { System.err.println("大家好!我是"+nick+",今年"+age+"歲"); System.err.println("我是"+resignDate+"年註冊的,目前等級是:"+degree); } }
package Day5_4; import java.util.Scanner; public class UserTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請輸入您的昵稱:"); String nick = scanner.next(); System.out.println("請輸入您的密碼:"); String pwd = scanner.next(); System.out.println("請輸入您的性別:"); String sex = scanner.next(); System.out.println("請輸入您的等級:"); String degree = scanner.next(); System.out.println("請輸入您的年齡:"); int age = scanner.nextInt(); System.out.println("請輸入您的註冊時間:"); String resignDate = scanner.next(); User user = new User(nick, pwd, age, sex, resignDate, degree); user.showMessage(); } }
結果圖:
Java學習記錄(補充二:面對對象基礎復習,習題)