導航:首頁 > 編程語言 > java面向對象編程第5期

java面向對象編程第5期

發布時間:2022-04-11 22:13:23

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面向對象編程

面向對象編程(oop)旨在將現實世界中的概念模擬到計算機中,它將現實世界中的所以事物視作對象。對象是存在的具體實體,具有明確定義的狀態和行為。

③ Java面向對象編程的內容簡介

《Java 面向對象編程》 內容由淺入深,緊密結合實際,利用大量典型實例,詳細講解Java面向對象的編程思想、編程語法和設計模式,介紹常見Java類庫的用法,總結Java編程的各種經驗,深入闡述Java虛擬機執行程序的原理。書中實例均基於最新的JDK 1.5版本。全書內容包括面向對象的編程思想、Java語言的基礎知識、異常處理、類與對象的生命周期、多線程、Java集合、輸入/輸出和GUI編程等。其最大特色是以六條主線貫穿全書:面向對象編程思想、Java語言的語法、Java虛擬機執行Java程序的原理、在實際項目中的運用、設計模式和性能優化技巧。

④ 孫衛琴《java面向對象編程》到底寫得如何,值得看嗎

孫衛琴的《java面向對象編程》是最經典的原創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 面向對象編程

網路很快的……
java的面向對象:java最基本的特徵之一。對象是java最基本的封裝單位,要求編程時候將對象概括為類,類封裝對象的一些操作和數據。然後運用時候再將類實例化為對象
對象被稱作類的一個實例(Instance),而類是對象的模 版(Template) 類是多個實例的綜合抽象,而實例又是類的個體實物。 由於對象是類的實例,因此在定義對象之前應先定義類。定義了類之後,才 可以在類的基礎上創建對象。

⑦ java 里的面向對象的編程,1.是怎麼找到類與類(對象與對象)之間的關系 2.為什麼要初始化數據

1、這個設計到java底層的動態綁定機制。你只要知道用類聲明了對象,即便在程序中你將其強制轉化為其他類。但java仍能判斷出它初始的類型。比如
String s=new String("test");
s=(Object)s;
System.out.println(s.getClass());//這里輸出的依然會是String類型的,雖然上一部經過強制轉換。

2、java中很多基本數據類型都有默認值,比如INT類型的是0,但是java最多的數據類型還是對象。
如果不初始化數據,那麼對象的值默認為null,調用該對象的時候就會拋出空指針異常。我舉個簡單的例子。
String s="";和String s;的區別,前一個表示,我按照s中保存的地址去尋找這個String類型的對象,找到了,而且是一個空字元串。後一個表示,我想通過s中保存的地址去找對象,但是s中沒有地址,是空的,因此我想去調用s的方法的時候會出錯,因為他並沒有指向任何一個對象。

⑧ Java面向對象編程有哪些優點

面向對象的優點是:不造重復的輪子,也就是說不幹重復的活。
java中把具有相同共性的一類事物抽象為一個類,而對象是這個類的其中一個實體。
例如:人是一個類(有共同的屬性,有頭發、眼睛、鼻子.....),張三、李四、王五是三個實體對象,而每個對象的屬性又是不同的,例如張三是黑頭發,李四是黃頭發、王五是紅頭發。
這樣復用性比較好。

閱讀全文

與java面向對象編程第5期相關的資料

熱點內容
程序員看不懂怎麼辦 瀏覽:271
linux操作系統題 瀏覽:765
單片機無符號數加法 瀏覽:227
應用隱藏加密怎麼關閉 瀏覽:269
汽車空調的壓縮機電線有什麼用 瀏覽:429
電腦加密圖片如何取消加密 瀏覽:340
慧凈電子51單片機視頻 瀏覽:343
javamap賦值 瀏覽:165
什麼app可以玩掌機游戲 瀏覽:46
java簡單聊天室 瀏覽:462
通用汽車編程軟體 瀏覽:432
一級抗震框架梁箍筋加密區規定是多少 瀏覽:974
教你如何把安卓手機變成蘋果 瀏覽:11
app編譯分類 瀏覽:323
怎麼用伺服器的資源包 瀏覽:199
oa軟體手機登陸伺服器地址 瀏覽:289
androidrtp打包 瀏覽:723
信息被加密碼了怎麼辦 瀏覽:420
彈出光碟命令 瀏覽:517
kdj公式源碼分享 瀏覽:355