⑴ 用java寫一段程序掃描文件夾下所有後綴為.txt的文件代碼
鏈接:
提取碼:9a2f復制這段內容後打開網路網盤手機App,操作更方便哦
作品簡介:
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
⑵ java面向對象編程求幫忙
一共三個類:ScoreArray.java、StudentScoreArray.java和Test1.java,具體為:
public class ScoreArray {
private int[] scores;
private int scoreCount;
public int[] getScores() {
return scores;
}
public int getScoreCount() {
return scoreCount;
}
//構造函數
public ScoreArray(int[] scores) {
this.scores = scores;
for (int score : scores) {
if (score >= 0 && score <= 100) {
this.scoreCount++;
}
}
}
//求最大值
public int getMax() {
int[] scores = this.scores;
int temp;
for (int i = 0; i < scores.length; i++) {
for (int j = 0; j < scores.length - 1 - i; j++) {
if (scores[j] > scores[j + 1]) {
temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
return scores[scores.length - 1];
}
//求最小值
public int getMin() {
int[] scores = this.scores;
int temp;
for (int i = 0; i < scores.length; i++) {
for (int j = 0; j < scores.length - 1 - i; j++) {
if (scores[j] > scores[j + 1]) {
temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
return scores[0];
}
//求均值
public double getAvg() {
int sum = 0;
for (int score : this.scores) {
sum += score;
}
return new BigDecimal(sum).divide(
new BigDecimal(this.scores.length),
2, BigDecimal.ROUND_HALF_UP).doubleValue();
}
//排序
public void sort() {
int temp;
for (int i = 0; i < this.scores.length; i++) {
for (int j = 0; j < this.scores.length - 1 - i; j++) {
if (this.scores[j] > this.scores[j + 1]) {
temp = this.scores[j];
this.scores[j] = this.scores[j + 1];
this.scores[j + 1] = temp;
}
}
}
}
//靜態說明類
public static void explain() {
System.out.println("本類[ScoreArray]實現了數組的:求最值[getMax()]、求均值[getAvg()]和排序[sort()]方法");
}
}
public class StudentScoreArray extends ScoreArray {
public StudentScoreArray(int[] scores) {
super(scores);
}
//統計
public void statistic() {
super.sort();
Map<Integer, Integer> map = new LinkedHashMap<>();
for (int i : super.getScores()) {
if (map.containsKey(i)) {
map.put(i, map.get(i) + 1);
} else {
map.put(i, 1);
}
}
map.forEach((k, v) -> System.out.println("分數為[" + k + "]的人數為:[" + v + "]"));
}
//靜態說明類
public static void explain() {
System.out.println("本類[StudentScoreArray]實現了數組的:求最值[getMax()]、求均值[getAvg()]、排序[sort()]和分布統計[statistic()]方法");
}
}
public class Test1 {
public static void main(String[] args) {
int[] scores = {59, 60, 82, 58, 71, 99, 0, 59, 65};
ScoreArray scoreArray = new ScoreArray(scores);
ScoreArray.explain();
System.out.print("數組內容:[");
for (int i : scoreArray.getScores()) {
System.out.print(i + " ");
}
System.out.println("]");
System.out.println("有效值個數:" + scoreArray.getScoreCount());
System.out.println("最大值:" + scoreArray.getMax());
System.out.println("最小值:" + scoreArray.getMin());
System.out.println("平均值:" + scoreArray.getAvg());
scoreArray.sort();
System.out.print("排序後數組內容:[");
for (int i : scoreArray.getScores()) {
System.out.print(i + " ");
}
System.out.println("]");
System.out.println("");
System.out.println("========華麗的分割線========");
System.out.println("");
StudentScoreArray studentScoreArray = new StudentScoreArray(scores);
StudentScoreArray.explain();
System.out.print("數組內容:[");
for (int i : studentScoreArray.getScores()) {
System.out.print(i + ",");
}
System.out.println("]");
System.out.println("有效值個數:" + studentScoreArray.getScoreCount());
System.out.println("最大值:" + studentScoreArray.getMax());
System.out.println("最小值:" + studentScoreArray.getMin());
System.out.println("平均值:" + studentScoreArray.getAvg());
studentScoreArray.sort();
System.out.print("排序後數組內容:[");
for (int i : studentScoreArray.getScores()) {
System.out.print(i + " ");
}
System.out.println("]");
System.out.println("分數分布統計:");
studentScoreArray.statistic();
}
}
其中對StudentScoreArray類我要特別說明一下:
統計分布情況時,使用了Map,map是一種key-value的數據結構,其有個特點被我所利用:一個map中只能同時存在一個key,所以我以分數為key,以數量為value,遍歷分數數組時,如果是第一次遇到這個key(分數),則將其value(數量)置為1;如果已經不是第一次遇見了,則將其value(數量)置為value + 1(數量 + 1)。另外需要遍歷這個map實現統計結果的列印,我這里使用了java8以後才支持的Lambda表達式,所以你要運行這個程序必須要使用jdk1.8以上的版本。如果你覺得這樣不妥,可以網上再搜一下map的遍歷方式。
運行結果:
測試用例都使用的數組:int[] scores = {59, 60, 82, 58, 71, 99, 0, 59, 65};
⑶ java面向對象編程
package test;
public class Person {
private String realName;
private int age;
private int sex;
public Person(String realName, int age, int sex) {
this.realName = realName;
this.age = age;
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getSexStr() {
if (sex == 1)
return "男";
else
return "女";
}
}
package test;
public class Student extends Person {
private String studentNo;
public Student(String studentNo, String realName, int age, int sex) {
super(realName, age, sex);
this.studentNo = studentNo;
}
public String getStudentNo() {
return studentNo;
}
public void setStudentNo(String studentNo) {
this.studentNo = studentNo;
}
public static void main(String[] args) {
Student s1 = new Student("1", "張三", 21, 1);
Student s2 = new Student("2", "李四", 23, 0);
System.out.println("s1 : 學號=" + s1.getStudentNo() + " 姓名=" + s1.getRealName() + " 年齡=" + s1.getAge() + " 性別=" + s1.getSexStr());
System.out.println("s2 : 學號=" + s2.getStudentNo() + " 姓名=" + s2.getRealName() + " 年齡=" + s2.getAge() + " 性別=" + s2.getSexStr());
}
}
⑷ Java面向對象編程
舉個簡單的例子:public static void main(String [] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你的年齡:");
int age = sc.nextInt();
System.out.println("請輸入你的姓版名:");
String name = sc.nextLine();
System.out.println("請輸入你的工資:");
float salary = sc.nextFloat();
System.out.println("你的信息權如下:");
System.out.println("姓名:"+name+"\n"+"年齡:"+age+"\n"+"工資:"+salary);
}
在哪個包,按快捷鍵引入包就知道了