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

java代碼家譜 java家譜管理系統(tǒng)

java中的多態(tài)三要素是什么?

1。Person person = new A(); 不是父類對象指向子類引用而是父類引用指向子類對象

創(chuàng)新互聯(lián)建站是一家專業(yè)提供賀州企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計制作、做網(wǎng)站H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為賀州眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。

2。這個對象不能調(diào)用子類A特有的彈吉他方法--person.guitar(); X

3.如果僅是這么寫程序,還不是多態(tài),記住實現(xiàn)多態(tài)的三要素:繼承 重寫 父類引用指向子類對象

那么,你必須在父類里面定義一個方法guitar(); ,然后在子類中重寫這個方法

之后,如果你調(diào)用persion.guitar(),此時在代碼的編譯階段,persion調(diào)用的仍然是自己的guitar(),不是兒子的。而當程序運行時,就是java XXX, persion調(diào)用的卻是兒子的guitar()。這個動態(tài)的過程才是多態(tài) 。

總之

比如A a = new B();是創(chuàng)建了一個子類對象并把它當成父類對象A用

也就是父類引用指向子類對象

此時,引用變量a有2個類型,編譯時的類型為A,運行時的類型為B.在代碼編譯過程中,a 只能調(diào)用屬于A的方法. 不能調(diào)用B類里面的方法.注意,由于繼承關(guān)系,如果B重寫了A的某個方法,比如說eat(),而在代碼編譯過程中,a.eat()調(diào)用的是A的eat(),但在程序運行時,卻運行的是B的eat(). 這就是多態(tài)

比如Animal a = new Tiger(); Tiger繼承并重寫了Animal的eat()方法.這也是父類引用指向子類對象.首先, a 是 一只老虎.但不幸的是,Animal a= new Tiger(); 也就是說a雖然有了老虎的實質(zhì), 就是說有了老虎的爪子,身材..... , 但卻沒有老虎的名分.它雖然身體是老虎, 但名字或者說它的類別卻是動物,而不是老虎.而作為動物的定義,你當然不能使用屬于老虎的定義的方法.比如說,雖然二者都有吃的行為, 但老虎吃肉,動物都吃肉么? 所以雖然a實質(zhì)上是老虎,但在書面描述a的行為時,你只能使用動物的定義. 這個階段就相當于代碼的編譯的階段.而此時a的類型為編譯時的類型-動物.而如果具體實施吃的行為時, 比如說給a喂吃的, 雖然書面定義了a只能有動物的籠統(tǒng)的吃的方法,比如說用嘴,沒有規(guī)定要吃肉.但是現(xiàn)在是具體操作了,由于a實質(zhì)上是老虎,所以a實質(zhì)上履行的還是老虎的吃的方法. 具體的吃的過程,就相當于程序的運行的階段. 而此時a的類型為運行時的類型-老虎

運用Java數(shù)據(jù)結(jié)構(gòu)的知識創(chuàng)建樹,內(nèi)容是族譜。

每一個節(jié)點有一個成員變量引用下一個節(jié)點就行了。

大致實現(xiàn)了一下單向鏈表?沒有加入異常也沒有仔細考慮實現(xiàn)的代碼的效率,可以參考下。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

public?class?LinkListTest?{

public?static?void?main(String[]?args)?{

LinkListString?ll=new?LinkListString();

ll.add("a");

ll.add("b");

ll.add("c");

ll.add("d");

ll.remove(1);

System.out.println(ll.get(0));

System.out.println(ll.get(1));

System.out.println(ll.get(2));

System.out.println(ll.get(3));

System.out.println(ll.size());

}

}

class?LinkListT{

private?NodeT?frist=null;

private?NodeT?last=null;

private?int?size=0;

public?void?add(T?t){

if(frist==null){

NodeT?node=new?NodeT();

node.setT(t);

size++;

frist=node;

last=node;

}else{????????

NodeT?node=new?NodeT();???????

node.setT(t);

last.setNextNode(node);

size++;

last=node;

}

}

public?T?get(int?i){??????

if(i=0isize){

NodeT?nod=null;

for(int?n=0;n=i;n++){

if(n==0)

nod=frist;

else

nod=nod.getNextNode();?????????????

if(i==n){

return?nod.getT();

}?????????

}?????????

}

return?null;

}?

public?void?remove(int?i){

if(i=0isize){

if(size2){

frist=null;

last=null;

size=0;

}else{

size--;

if(i==0){

frist=frist.getNextNode();????????

}else{??????

NodeT?nod1=null;

NodeT?nod2=null;

for(int?n=0;n=i;n++){

if(n==0){

nod1=frist;

nod2=frist;

}else{

nod2=nod1;

nod1=nod1.getNextNode();??????????????????????

}?

if(i==n){

if(nod1!=null)

nod2.setNextNode(nod1.getNextNode());

else{

nod2.setNextNode(null);

last=nod2;

}

}?????????????

}?

}???

}

}

}

public?int?size(){

return?size;

}

}

class?Node?T{

public?T?getT()?{

return?t;

}

public?void?setT(T?t)?{

this.t?=?t;

}

public?NodeT?getNextNode()?{

return?nextNode;

}

public?void?setNextNode(NodeT?nextNode)?{

this.nextNode?=?nextNode;

}

private?T?t;

private?NodeT?nextNode=null;

}

一個簡單的Java程序代碼?

package com.zpp;public class Charge {

public static void main(String [] args) {

if(args.length ==0) {

System.out.println("parameter error!");

System.out.println("java com.zpp.Charge [int]");

return;

}

int min = Integer.parseInt(args[0]);

double money = 0.0;

if (min = 0) {

money =0.0;

System.out.println("not money");

} else if (min = 60) {

money = 2.0;

} else {

money = 2.0 + (min - 60) * 0.01;

}

System.out.println("please pay: " + money);

}

} 編譯:javac -d . Charge.java運行:java com.zpp.Charge 111

java二叉樹家譜實現(xiàn)

mport java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Random;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTree;

import javax.swing.tree.DefaultMutableTreeNode;

public class Randomtree extends JFrame {

private JTree tree;

public static String[] school = { "初中課程", "高中課程", "大學(xué)課程" };

public static String[] color = { "顏色", "運動", "食物" };

public static String[] plant = { "植物", "動物", "人" };

public static String[][] school2= {

{ "初中一年級", "初中二年級", "初中三年級"}, {"高中一年級", "高中二年級",

"高中三年級"}, {"大學(xué)一年級", "大學(xué)二年級", "大學(xué)三年級", "大學(xué)四年級"} };

public static String[][] color2 = {

{ "綠色", "白色", "紅色"}, {"足球", "籃球",

"羽毛球"}, {"面包", "牛奶", "披薩", "熱狗"} };

public static String[][] plant2 = {

{ "玫瑰花", "月季花", "海棠花"}, {"豬", "狗",

"貓"}, {"黃種人", "黑種人", "白種人", } };

public static void main(String[] args) {

// TODO 自動生成方法存根

new Randomtree();

}

public Randomtree() {

super();

final Random random=new Random();

setVisible(true);

setSize(300,400);

tree = new JTree();

final JPanel panel = new JPanel();

panel.setPreferredSize(new Dimension(0, 40));

getContentPane().add(panel, BorderLayout.NORTH);

final JScrollPane scrollPane = new JScrollPane();

scrollPane.setPreferredSize(new Dimension(300, 350));

getContentPane().add(scrollPane, BorderLayout.CENTER);

final JButton button = new JButton();

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

int k=random.nextInt(3);

tree=getTree(k);

scrollPane.setViewportView(tree);

}

});

scrollPane.setViewportView(null);

button.setText("隨機生成樹");

panel.add(button);

pack();

}

protected JTree getTree(int n) {

String[] second=null;

String[][] three=null;

if(n==0){second=school; three=school2;}

if(n==1){second=color; three=color2;}

if(n==2){second=plant; three=plant2;}

DefaultMutableTreeNode root=new DefaultMutableTreeNode("root");

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

DefaultMutableTreeNode secondNode=new DefaultMutableTreeNode(second[i]);

for (int j=0;jthree[i].length;j++){

DefaultMutableTreeNode threetNode=new DefaultMutableTreeNode(three[i][j]);

secondNode.add(threetNode);

}

root.add(secondNode);

}

JTree tree=new JTree(root);

tree.expandRow(1);

tree.expandRow(5);

tree.expandRow(9);

return tree;

}

}

簡單的 例子你可以模仿一下

網(wǎng)站名稱:java代碼家譜 java家譜管理系統(tǒng)
本文URL:http://www.chinadenli.net/article2/dooecic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管動態(tài)網(wǎng)站企業(yè)網(wǎng)站制作商城網(wǎng)站企業(yè)建站

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)