當前位置:首頁 » 編程語言 » java類設計

java類設計

發布時間: 2022-07-03 19:36:33

『壹』 java程序設計

成績我定義成double了,另外平均分我給你保留兩位小數:

public class Student {
private String No; //學號
private String name; //姓名
private String gender; //性別
private int age; //年齡
private double chinese; //語文
private double math; //數學
private double english; //英語

//構造函數
public Student(String no,
String name,
String gender,
int age,
double chinese,
double math,
double english) {
No = no;
this.name = name;
this.gender = gender;
this.age = age;
this.chinese = chinese;
this.math = math;
this.english = english;
}

@Override
public String toString() {
return "Student{" +
"No='" + No + ''' +
", name='" + name + ''' +
", gender='" + gender + ''' +
", age='" + age + ''' +
", chinese=" + chinese +
", math=" + math +
", english=" + english +
'}';
}

//計算總分
public double getSum() {
return this.chinese + this.math + this.english;
}

//計算平均分
public double getAverage() {
return (this.chinese + this.math + this.english) / 3;
}
}

測試類:

class Test {
public static void main(String[] args) {
Student student = new Student(
"20190001",
"張三",
"男",
18,
109.5,
89.0,
110.0);
double sum = student.getSum();
double average = student.getAverage();
System.out.println("該學生的信息為:" + student.toString());
System.out.println("該學生的總分為:" + sum);
System.out.println("該學生的平均分為:" + String.format("%.2f", average));
}
}


運行結果:

『貳』 java類、方法的設計

在Java面向對象編程的過程中,類的設計是一個很有挑戰性的工作,不同的人可能對於類的理解不一樣,設計出來的類也可能不一樣,總結出以下幾點關於類設計方面的建議供開發人員參考:
1.永遠保持數據私有
保持數據的私有是設計類時,必須重點考慮的問題。保持私有的數據有利於封裝。雖然為了保持數據的私有,需要編寫設置器與訪問期,但這比起不是數據私有要安全的多。
2.永遠初始化數據
Java不提供對本地變數的初始化,但它會初始化對象中的實力欄位。在設計類時盡量不要依賴於系統的默認值,最好明確的初始化變數。可以通過賦值或構造器對變數進行初始化。
3.不要在一個類中使用太多的基本類型
把相關的基本類型利用封裝的功能,設計成一個單獨的類;在引用時也同樣盡量使用一個單獨的類封裝同一功能的類似欄位。這樣做的結果可以使類更易於理解和修改。
例:在一個類中需要引入人的某些屬性
Private String peopleName;
Private String peopleSex;
Private String peopleBirthday;
在正中情況下,可以設計一個People類來實現這些欄位的封裝,在新設計的類中,只需要一個類的實例:
People aPeople = new People();
就可以得到相關的屬性值。
4.盡量使類的功能單一化
這句話很難用一句明確的語言來形容,什麼樣的類是功能單一的呢,可以這樣理解,例如設計一個類時,盡量不要將太多的功能放到一起。

『叄』 java.按照類的設計原則進行類的設計會帶來什麼好處

在Java語言中, abstract class 和interface 是支持抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的 面向對象能力。abstract class和interface之間在對於抽象類定義的支持方面具有很大的相似性,甚至可以相互替換,因此很多開發者在進 行抽象類定義時對於abstract class和interface的選擇顯得比較隨意。其實,兩者之間還是有很大的區別的,對於它們的選擇甚至反映出對 於問題領域本質的理解、對於設計意圖的理解是否正確、合理。本文將對它們之間的區別進行一番剖析,試圖給開發者提供一個在二者之間進行選擇的依據。

理解抽象類

abstract class和interface在Java語言中都是用來進行抽象類(本文 中的抽象類並非從abstract class翻譯而來,它表示的是一個抽象體,而abstract class為Java語言中用於定義抽象類的一種方法, 請讀者注意區分)定義的,那麼什麼是抽象類,使用抽象類能為我們帶來什麼好處呢?

在 面向對象的概念中,我們知道所有的對象都是通過類來描繪的,但是反過來卻不是這樣。並不是 所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。抽象類往往用來表徵我們在對問題領域進行分析、 設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。比如:如果我們進行一個圖形編輯軟體的開發,就會發現問題領域存在著圓、 三角形這樣一些具體概念,它們是不同的,但是它們又都屬於形狀這樣一個概念,形狀這個概念在問題領域是不存在的,它就是一個抽象概念。正是因為抽象的概念 在問題領域沒有對應的具體概念,所以用以表徵抽象概念的抽象類是不能夠實例化的。

在面向對象領域,抽象類主要用來進行類型隱藏。 我們可以構造出一個固定的一組行為的抽象描 述,但是這組行為卻能夠有任意個可能的具體實現方式。這個抽象描述就是抽象類,而這一組任意個可能的具體實現則表現為所有可能的派生類。模塊可以操作一個 抽象體。由於模塊依賴於一個固定的抽象體,因此它可以是不允許修改的;同時,通過從這個抽象體派生,也可擴展此模塊的行為功能。熟悉OCP的讀者一定知 道,為了能夠實現面向對象設計的一個最核心的原則OCP(Open-Closed Principle),抽象類是其中的關鍵所在。

從語法定義層面看abstract class 和 interface

在語法層面,Java語言對於abstract class和interface給出了不同的定義方式,下面以定義一個名為Demo的抽象類為例來說明這種不同。

使用abstract class的方式定義Demo抽象類的方式如下:

abstract class Demo{

abstract void method1();

abstract void method2();





使用interface的方式定義Demo抽象類的方式如下:

interface Demo{

void method1();

void method2();



}

『肆』 Java的設計模式都有哪些

一共23種設計模式!

引用《軟體秘笈-設計模式那點事》書籍:

按照目的來分,設計模式可以分為創建型模式、結構型模式和行為型模式。
創建型模式用來處理對象的創建過程;結構型模式用來處理類或者對象的組合;行為型模式用來對類或對象怎樣交互和怎樣分配職責進行描述。

創建型模式用來處理對象的創建過程,主要包含以下5種設計模式:
 工廠方法模式(Factory Method Pattern)
 抽象工廠模式(Abstract Factory Pattern)
 建造者模式(Builder Pattern)
 原型模式(Prototype Pattern)
 單例模式(Singleton Pattern)

結構型模式用來處理類或者對象的組合,主要包含以下7種設計模式:
 適配器模式(Adapter Pattern)
 橋接模式(Bridge Pattern)
 組合模式(Composite Pattern)
 裝飾者模式(Decorator Pattern)
 外觀模式(Facade Pattern)
 享元模式(Flyweight Pattern)
 代理模式(Proxy Pattern)

行為型模式用來對類或對象怎樣交互和怎樣分配職責進行描述,主要包含以下11種設計模式:
 責任鏈模式(Chain of Responsibility Pattern)
 命令模式(Command Pattern)
 解釋器模式(Interpreter Pattern)
 迭代器模式(Iterator Pattern)
 中介者模式(Mediator Pattern)
 備忘錄模式(Memento Pattern)
 觀察者模式(Observer Pattern)
 狀態模式(State Pattern)
 策略模式(Strategy Pattern)
 模板方法模式(Template Method Pattern)
 訪問者模式(Visitor Pattern)

『伍』 Java常用的幾種設計模式

下面給你介紹5種設計模式:

1.單例設計模式

所謂單例設計模式簡單說就是無論程序如何運行,採用單例設計模式的類(Singleton類)永遠只會有一個實例化對象產生。具體實現步驟如下:

(1) 將採用單例設計模式的類的構造方法私有化(採用private修飾)。

(2) 在其內部產生該類的實例化對象,並將其封裝成private static類型。

(3) 定義一個靜態方法返回該類的實例。

2.工廠設計模式

程序在介面和子類之間加入了一個過渡端,通過此過渡端可以動態取得實現了共同介面的子類實例化對象。

3.代理設計模式

指由一個代理主題來操作真實主題,真實主題執行具體的業務操作,而代理主題負責其他相關業務的處理。比如生活中的通過代理訪問網路,客戶通過網路代理連接網路(具體業務),由代理伺服器完成用戶許可權和訪問限制等與上網相關的其他操作(相關業務)。

4.觀察者設計模式

所謂觀察者模式,舉個例子現在許多購房者都密切觀察者房價的變化,當房價變化時,所有購房者都能觀察到,以上的購房者屬於觀察者,這便是觀察者模式。

java中可以藉助Observable類和Observer介面輕松實現以上功能。當然此種模式的實現也不僅僅局限於採用這兩個類。

5.適配器模式

如果一個類要實現一個具有很多抽象方法的介面,但是本身只需要實現介面中的部分方法便可以達成目的,所以此時就需要一個中間的過渡類,但此過渡類又不希望直接使用,所以將此類定義為抽象類最為合適,再讓以後的子類直接繼承該抽象類便可選擇性的覆寫所需要的方法,而此抽象類便是適配器類。

『陸』 java里如何設計這個類

package com.;

import java.util.Date;

public class Computer {

public Key key;

public Screen screen;

public Mouse mouse;

public Date time;

public Computer(Key key, Screen screen, Mouse mouse, Date time) {

this.key = key;

this.screen = screen;

this.mouse = mouse;

this.time = time;

}

public Key getKey() {

return key;

}

public void setKey(Key key) {

this.key = key;

}

public Screen getScreen() {

return screen;

}

public void setScreen(Screen screen) {

this.screen = screen;

}

public Mouse getMouse() {

return mouse;

}

public void setMouse(Mouse mouse) {

this.mouse = mouse;

}

public Date getTime() {

return time;

}

public void setTime(Date time) {

this.time = time;

}

}

class Key {

}

class Screen {

}

class Mouse {

}

『柒』 java設計一個人的類


importjava.util.Random;

publicclassPerson{
//姓名
privateStringname;
//性別
privateStringsex;
//年齡
privateintage;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetSex(){
returnsex;
}
publicvoidsetSex(Stringsex){
this.sex=sex;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
//方法一
publicvoidfirstfunction(){
this.setName("風吹激動單達產");
this.setSex("人妖");
System.out.println("睡覺:"+this.getName()+"正在睡覺。");
System.out.println("跳舞:一個"+this.getSex()+"人正在跳舞,左三圈右三圈...");
}
//方法二
publicStringsecondfunction(){
this.setName("風吹激動單達產");
Stringhua="";
Randomra=newRandom();
intaa=(int)(0+Math.random()*(2+1));
if(aa==0){
hua="玫瑰花";
}elseif(aa==1){
hua="百合花";
}elseif(aa==2){
hua="月季花";
}else{
hua="菊花";
}
returnthis.getName()+"送給潘金蓮一束"+hua;
}
//方法三
@SuppressWarnings("unused")
publicvoidthirdfunction(intmoney,Stringname){
this.setName("風吹激動單達產");
if(name!=null||name!=""){
System.out.println(name+"正在打"+this.getName());
}else{
if(money<=0){
System.out.println("你是小氣鬼。");
}elseif(money>0&&money<=50){
System.out.println("謝謝你!");
}elseif(money>50&&money<=10000){
System.out.println("你是個好人!");
}else{
System.out.println("你是我的救星啊!我代表八輩祖宗感謝你!做鬼都不會放過你的!");
}
}
}
//方法四
(intmoney){
Stringyan="";
switch(money){
case0:
yan="無煙";
break;
case1:
yan="無煙";
break;
case2:
yan="新石家莊煙";
break;
case5:
yan="七匹狼煙";
break;
case6:
yan="紅石二代煙";
break;
case7:
yan="紅塔山煙";
break;
case10:
yan="玫瑰鑽煙";
break;
case15:
yan="金石煙";
break;
case23:
yan="玉溪煙";
break;
case65:
yan="中華煙";
break;
default:
yan="無煙";
break;
}
returnyan;
}
publicintfourthfunctionoushu(intoushu){
intstart=0;
if(oushu>1){
for(inti=1;i<oushu;i++){
if(i%2==0){
start++;
}
}
}

returnstart;
}
publicintfourthfunctiondanshu(intone,inttwo){
intsum=0;
if(one<two){
for(inti=one;i<two;i++){
sum=sum+i;
}
sum=sum-one;
}elseif(one>two){
for(inti=two;i<one;i++){
sum=sum+i;
}
sum=sum-two;
}else{
sum=0;
}

returnsum;
}
publicstaticvoidmain(String[]args){
Personss=newPerson();

System.out.println(ss.fourthfunctionmoney(5));
}
}

『捌』 關於java的類設計問題 - 如何使用介面和抽象類

我的想法是這樣:
四種系統和肝臟都可以設計成類,互相之間沒有繼承關系。
一般來說,類A繼承類B,對應於現實中的「A是B」,可以藉此判斷是否應該用繼承。比如,鋼琴是樂器,所以class Piano可以繼承class Instrument。在這里,血液循環系統是肝臟嗎?顯然不是,所以class BloodCycle繼承class Liver在概念上就是不合適的。
至於一個人只有一個肝的問題,在初始化4個系統時不要初始化肝臟就行了。類BloodCycle和類Digesting都有一個類Liver的內部成員humanLiver,不初始化,而是開放一個介面,讓調用者來創建一個Liver對象然後賦給BloodCycle對象和Digesting對象。偽碼:
BloodCycle bloodCycle = new BloodCycle();
Digesting digesting = new Digesting();
Liver liver = new Liver();
bloodCycle.setHumanLiver(liver);
digesting.setHumanLiver(liver);

這樣所有問題都解決了。Java里所有對象變數都是指針,所以bloodCycle和digesting里的humanLiver指向的是同一個對象,即共用同一個人的肝臟,符合現實生活。

『玖』 JAVA如何設計實體類

如果說的是對應資料庫信息的實體類,……對Java來說,和普通的類一模一樣。只是每個類設計者有不同的用法,比如說集合類,作為各種數據結構使用。實體類主要作為存儲資料庫信息使用。兩者Java上有區別么?沒有,只是代碼不一樣,用法不一樣。

熱點內容
蘋果手機如何傳送原圖照片到安卓 發布:2022-08-10 23:20:07 瀏覽:749
相機防抖演算法 發布:2022-08-10 23:20:01 瀏覽:303
sqlserver2008主鍵 發布:2022-08-10 23:19:57 瀏覽:313
編譯原理陳意雲pdf 發布:2022-08-10 23:19:45 瀏覽:702
shelvepython 發布:2022-08-10 23:18:25 瀏覽:238
androidqq空間 發布:2022-08-10 23:15:37 瀏覽:607
電信用戶身份驗證密碼哪裡找 發布:2022-08-10 23:14:17 瀏覽:497
科沃茲哪個配置最耐用 發布:2022-08-10 23:10:36 瀏覽:525
高級編程第6版 發布:2022-08-10 23:08:47 瀏覽:607
au錄音需要什麼配置筆記本 發布:2022-08-10 23:03:07 瀏覽:380