欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java面向?qū)ο蠡A(chǔ)代碼,java面向?qū)ο蠡A(chǔ)知識(shí)

北大青鳥java培訓(xùn):41條面向?qū)ο蠼?jīng)驗(yàn)?

(1)所有數(shù)據(jù)都應(yīng)該隱藏在所在的類的內(nèi)部。

我們提供的服務(wù)有:網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、廉江ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的廉江網(wǎng)站制作公司

(2)類的使用者必須依賴類的共有接口,但類不能依賴它的使用者。

(3)盡量減少類的協(xié)議中的消息。

(4)實(shí)現(xiàn)所有類都理解的最基本公有接口[例如,拷貝操作(深拷貝和淺拷貝)、相等性判斷、正確輸出內(nèi)容、從ASCII描述解析等等].(5)不要把實(shí)現(xiàn)細(xì)節(jié)(例如放置共用代碼的私有函數(shù))放到類的公有接口中。

如果類的兩個(gè)方法有一段公共代碼,那么就可以創(chuàng)建一個(gè)防止這些公共代碼的私有函數(shù)。

(6)不要以用戶無法使用或不感興趣的東西擾亂類的公有接口。

(7)類之間應(yīng)該零耦合,或者只有導(dǎo)出耦合關(guān)系。

也即,一個(gè)類要么同另一個(gè)類毫無關(guān)系,要么只使用另一個(gè)類的公有接口中的操作。

(8)類應(yīng)該只表示一個(gè)關(guān)鍵抽象。

包中的所有類對(duì)于同一類性質(zhì)的變化應(yīng)該是共同封閉的。

一個(gè)變化若對(duì)一個(gè)包影響,則將對(duì)包中的所有類產(chǎn)生影響,而對(duì)其他的包不造成任何影響.(9)把相關(guān)的數(shù)據(jù)和行為集中放置。

設(shè)計(jì)者應(yīng)當(dāng)留意那些通過get之類操作從別的對(duì)象中獲取數(shù)據(jù)的對(duì)象。

這種類型的行為暗示著這條經(jīng)驗(yàn)原則被違反了。

(10)把不相關(guān)的信息放在另一個(gè)類中(也即:互不溝通的行為)。

朝著穩(wěn)定的方向進(jìn)行依賴。

(11)確保你為之建模的抽象概念是類,而不只是對(duì)象扮演的角色。

類應(yīng)當(dāng)統(tǒng)一地共享工作。

(13)在你的系統(tǒng)中不要?jiǎng)?chuàng)建全能類/對(duì)象。

對(duì)名字包含Driver、Manager、System、Susystem的類要特別多加小心。

規(guī)劃一個(gè)接口而不是實(shí)現(xiàn)一個(gè)接口。

(14)對(duì)公共接口中定義了大量訪問方法的類多加小心。

大量訪問方法意味著相關(guān)數(shù)據(jù)和行為沒有集中存放。

(15)對(duì)包含太多互不溝通的行為的類多加小心。

這個(gè)問題的另一表現(xiàn)是在你的應(yīng)用程序中的類的公有接口中創(chuàng)建了很多的get和set函數(shù)。

(16)在由同用戶界面交互的Java面向?qū)ο竽P蜆?gòu)成的應(yīng)用程序中,模型不應(yīng)該依賴于界面,界面則應(yīng)當(dāng)依賴于模型。

(17)盡可能地按照現(xiàn)實(shí)世界建模(我們常常為了遵守系統(tǒng)功能分布原則、避免全能類原則以及集中放置相關(guān)數(shù)據(jù)和行為的原則而違背這條原則).(18)從你的設(shè)計(jì)中去除不需要的類。

一般來說,我們會(huì)把這個(gè)類降級(jí)成一個(gè)屬性。

(19)去除系統(tǒng)外的類。

系統(tǒng)外的類的特點(diǎn)是,抽象地看它們只往系統(tǒng)領(lǐng)域發(fā)送消息但并不接受系統(tǒng)領(lǐng)域內(nèi)其他類發(fā)出的消息。

(20)不要把操作變成類。

質(zhì)疑任何名字是動(dòng)詞或者派生自動(dòng)詞的類,特別是只有一個(gè)有意義行為的類。

考慮一下那個(gè)有意義的行為是否應(yīng)當(dāng)遷移到已經(jīng)存在或者尚未發(fā)現(xiàn)的某個(gè)類中。

(21)我們?cè)趧?chuàng)建應(yīng)用程序的分析模型時(shí)常常引入代理類。

在設(shè)計(jì)階段,我們常會(huì)發(fā)現(xiàn)很多代理沒有用的,應(yīng)當(dāng)去除。

(22)盡量減少類的協(xié)作者的數(shù)量。

一個(gè)類用到的其他類的數(shù)目應(yīng)當(dāng)盡量少。

(23)盡量減少類和協(xié)作者之間傳遞的消息的數(shù)量。

(24)盡量減少類和協(xié)作者之間的協(xié)作量,也即:減少類和協(xié)作者之間傳遞的不同消息的數(shù)量。

(25)盡量減少類的扇出,也即:減少類定義的消息數(shù)和發(fā)送的消息數(shù)的乘積。

(26)如果類包含另一個(gè)類的對(duì)象,那么包含類應(yīng)當(dāng)給被包含的對(duì)象發(fā)送消息。

也即:包含關(guān)系總是意味著使用關(guān)系。

(27)類中定義的大多數(shù)方法都應(yīng)當(dāng)在大多數(shù)時(shí)間里使用大多數(shù)數(shù)據(jù)成員。

(28)類包含的對(duì)象數(shù)目不應(yīng)當(dāng)超過開發(fā)者短期記憶的容量。

這個(gè)數(shù)目常常是6.當(dāng)類包含多于6個(gè)數(shù)據(jù)成員時(shí),可以把邏輯相關(guān)的數(shù)據(jù)成員劃分為一組,然后用一個(gè)新的包含類去包含這一組成員。

(29)讓系統(tǒng)功能在窄而深的繼承體系中垂直分布。

(30)在實(shí)現(xiàn)語義約束時(shí),最好根據(jù)類定義來實(shí)現(xiàn)。

這常常會(huì)導(dǎo)致類泛濫成災(zāi),在這種情況下,約束應(yīng)當(dāng)在類的行為中實(shí)現(xiàn),通常是在構(gòu)造函數(shù)中實(shí)現(xiàn),但不是必須如此。

(31)在類的構(gòu)造函數(shù)中實(shí)現(xiàn)語義約束時(shí),把約束測(cè)試放在構(gòu)造函數(shù)領(lǐng)域所允許的盡量深的包含層次中。

(32)Java面向?qū)ο笾校s束所依賴的語義信息如果經(jīng)常改變,那么最好放在一個(gè)集中式的第3方對(duì)象中。

(33)約束所依賴的語義信息如果很少改變,那么最好分布在約束所涉及的各個(gè)類中。

(34)類必須知道它包含什么,但是不能知道誰包含它。

(35)共享字面范圍(也就是被同一個(gè)類所包含)的對(duì)象相互之間不應(yīng)當(dāng)有使用關(guān)系。

(36)繼承只應(yīng)被用來為特化層次結(jié)構(gòu)建模。

(37)派生類必須知道基類,基類不應(yīng)該知道關(guān)于它們的派生類的任何信息。

(38)基類中的所有數(shù)據(jù)都應(yīng)當(dāng)是私有的,不要使用保護(hù)數(shù)據(jù)。

電腦培訓(xùn)認(rèn)為類的設(shè)計(jì)者永遠(yuǎn)都不應(yīng)該把類的使用者不需要的東西放在公有接口中。

(39)在理論上,繼承層次體系應(yīng)當(dāng)深一點(diǎn),越深越好。

(40)在實(shí)踐中,繼承層次體系的深度不應(yīng)當(dāng)超出一個(gè)普通人的短期記憶能力。

一個(gè)廣為接受的深度值是6.(41)所有的抽象類都應(yīng)當(dāng)是基類。

Java程序面向?qū)ο缶幊痰幕炯軜?gòu) 接口的定義和使用 求完整代碼……謝謝

public class Admins implements Userinterface{

private String name;

private String password;

private static int userNum;

public Admins() {

userNum ++;

}

public Admins(String name, String password) {

this.name = name;

this.password = password;

userNum ++;

}

public void setPassword(String password) {

this.password = password;

}

public String getPassword() {

return this.password;

}

public String toString() {

return "Total: " + Admins.userNum + "\nName: " + this.name + "\nPassword: " + this.password;

}

public static void main(String [] args) {

Userinterface [] users = new Userinterface[]{new Admins("jeryy", "11111"), new Admins("green", "123123")};

for(Userinterface u: users) {

System.out.println(u);

}

}

}

interface Userinterface{

public void setPassword(String password);

public String getPassword();

public String toString();

}

public class Bins{

public static void main(String [] args) {

int len = 10;

int [] dist = new int [len];

for(int i = 0; i dist.length; i ++) {

dist[i] = (int)(Math.random() * 100);

}

java.util.Arrays.sort(dist);

System.out.println("生成數(shù)組如下: ");

for(int i: dist) {

System.out.print(i + "\t");

}

java.util.Scanner san = new java.util.Scanner(System.in);

System.out.print("輸入要查找的數(shù): ");

int key = san.nextInt();

int res = Bins.binSearch(dist, key);

//System.out.println(res);

String info = (res =0 ) ? (key + ":" + res) : "查找失敗";

System.out.println(info);

}

public static int binSearch(int [] dist, int key) {

java.util.Arrays.sort(dist);

return java.util.Arrays.binarySearch(dist, key);

}

}

7-1 jmu-Java-03面向?qū)ο蠡A(chǔ)-04-形狀-繼承(15 分)

自己寫的,也才學(xué)不容易還望采納

import java.util.*;

abstract class Shape{

final static double PI=3.14;

public abstract double getPerimeter();

public abstract double getArea();

public static double sumAllArea(Shape []shapes) {

double x=0;

for(Shape e:shapes) {

x+=e.getArea();

}

return x;

}

public static double sumAllPerimeter(Shape []shapes) {

double y=0;

for(Shape e:shapes) {

y+=e.getPerimeter();

}

return y;

}

}

class Rectangle extends Shape{

private int width;

private int length;

public double getPerimeter() {

return 2*(width+length);

}

public double getArea() {

return width*length;

}

public Rectangle(int width,int length) {

this.width=width;

this.length=length;

}

@Override

public String toString() {

return "Rectangle [width=" + width + ", length=" + length + "]";

}

}

class Circle extends Shape{

private int radius;

public double getPerimeter() {

// TODO Auto-generated method stub

return 2*PI*radius;

}

public double getArea() {

// TODO Auto-generated method stub

return PI*radius*radius;

}

public Circle(int radius) {

this.radius=radius;

}

@Override

public String toString() {

return "Circle [radius=" + radius + "]";

}

}

public class Main{

public static void main(String[] args) {

Scanner in=new Scanner(System.in);

int n;

n=in.nextInt();

Shape shapes[]=new Shape[n];

for(int i=0;in;i++) {

String s=in.next();

switch(s) {

case "rect":

int width,length;

width=in.nextInt();

length=in.nextInt();

shapes[i]=new Rectangle(width, length);

break;

case "cir":

int radius;

radius=in.nextInt();

shapes[i]=new Circle(radius);

break;

}

}

System.out.println(Shape.sumAllPerimeter(shapes));

System.out.println(Shape.sumAllArea(shapes));

System.out.println(Arrays.toString(shapes));

for(int i=0;in;i++) {

System.out.println(shapes[i].getClass()+","+shapes[i].getClass().getSuperclass());

}

}

}

有一道 java面向?qū)ο缶幊填} 求大家?guī)臀覍懸幌?面向?qū)ο蠡A(chǔ) 看到迷茫

package employee;

public class Employee {

//員工私有屬性

private String name; //員工姓名

private int age; //員工年齡

private String position; //員工職位

private int salary; //工資

/**

* 給所有的屬性指定初始值

* @param name

* @param age

* @param position

* @param salary

*/

public Employee(String name,int age,String position,int salary){

this.name = name;

this.age =age;

this.position = position;

this.salary = salary;

}

/**

* 給name屬性賦值

* @param name

*/

public void setName(String name){

this.name = name;

}

public String getName() {

return name;

}

/**

* 給age屬性賦值

* @param age

*/

public void setAge(int age){

if(age18){

this.age=18;

System.out.println("當(dāng)年齡無效時(shí),默認(rèn)為18");

}else{

this.age =age;

}

}

public int getAge() {

return age;

}

/**

* 給position屬性賦值

* @param position

*/

public void setPosition(String position){

if(position.equals("售后服務(wù)") || position.equals("銷售員") ){

this.position = position;

}else{

this.position = "售后服務(wù)";

System.out.println("輸入不符合要求,默認(rèn)為售后服務(wù)");

}

}

public String getPosition() {

return position;

}

/**

* 給員工工資賦值

* @param salary

*/

public void setSalary(){

if(age=18 age=20){

this.salary = 1000;

}else if(age=21 age=25){

this.salary = 1500;

}else if(age=26 age=30){

this.salary = 2000;

}else if(age=31 age=40){

this.salary = 3000;

}else if(age=41 age=50){

this.salary = 3500;

}else if(age=51){

this.salary = 4000;

}else{

System.out.println("沒有設(shè)置年齡或者年齡無效");

}

}

public int getSalary() {

return salary;

}

}

測(cè)試類

package employee;

import java.util.Scanner;

public class TestEmployee {

public static void main(String[] args){

Employee emp1 = new Employee(null, 0, null, 0) ;

Scanner sc = new Scanner(System.in);

System.out.println("請(qǐng)輸入第一個(gè)員工姓名");

//獲取輸入的名字

String name1 = sc.next();

emp1.setName(name1);

System.out.println("請(qǐng)輸入第一個(gè)員工年齡");

//獲取輸入的年齡

int age1 = sc.nextInt();

emp1.setAge(age1);

System.out.println("請(qǐng)輸入第一個(gè)員工職位");

//獲取輸入的職位

String position1 = sc.next();

emp1.setPosition(position1);

emp1.setSalary();

System.out.println("---------------------------------");

System.out.println("員工1姓名為:"+emp1.getName());

System.out.println("年齡:"+emp1.getAge());

System.out.println("工作為:"+emp1.getPosition());

System.out.println("工資為:"+emp1.getSalary());

}

}

第一次回答問題,玩玩而已但是還是希望采納

求幫忙編寫一下 這個(gè) JAVA程序 面向?qū)ο蠡A(chǔ)

package playgame;

public class NetGame {

private String gameName;

private String gameServer;

private int gamelevel;

public NetGame(String gameName ,String gameServer ,int gamelevel){

this.gameName=gameName;

this.gameServer=gameServer;

this.gamelevel=gamelevel;

}

public String getProperty(){

String str="gameName="+gameName+",gameServer="+gameServer+"," +

"gamelevel="+gamelevel;

return str;

}

public void groupNum(int person){

System.out.println("該游戲至少需要"+person+"個(gè)人組隊(duì)");

}

}

主函數(shù) :

package playgame;

import java.util.Scanner;

public class TextGame {

public static void main(String[] args) {

NetGame arr[]=new NetGame[3];

for(int i=0;i3;i++){

System.out.println("請(qǐng)輸入玩家姓名:");

Scanner sc=new Scanner(System.in);

String str=sc.next();

System.out.println("請(qǐng)選擇服務(wù)器:(1.聯(lián)通,2.電信,3.鐵通,4.國(guó)外):");

Scanner sc1=new Scanner(System.in);

int num=sc1.nextInt();

System.out.println("請(qǐng)輸入游戲等級(jí):(輸入 0 默認(rèn))");

Scanner sc2=new Scanner(System.in);

int lever=sc2.nextInt();

if(lever0){

lever=0;

}

switch(num){

case 1:

arr[i]=new NetGame(str,"聯(lián)通",lever);

break;

case 2:

arr[i]=new NetGame(str,"電信",lever);

break;

case 3:

arr[i]=new NetGame(str,"鐵通",lever);

break;

case 4:

arr[i]=new NetGame(str,"國(guó)外",lever);

break;

default:

arr[i]=new NetGame(str,"聯(lián)通",lever);

break;

}

}

for(int i=0;i3;i++){

System.out.println(arr[i].getProperty());

System.out.println("請(qǐng)輸入最少組團(tuán)人數(shù):");

Scanner sc3=new Scanner(System.in);

int person=sc3.nextInt();

arr[i].groupNum(person);

}

}

}

分享題目:java面向?qū)ο蠡A(chǔ)代碼,java面向?qū)ο蠡A(chǔ)知識(shí)
文章路徑:http://chinadenli.net/article7/dsgdjoj.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)移動(dòng)網(wǎng)站建設(shè)域名注冊(cè)關(guān)鍵詞優(yōu)化ChatGPT網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)