面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分。这些程序设计语言可以归纳为以下几类:
1 系统中一切事物皆为对象;对象是属性及其操作的封装体;
2 对象可按其性质划分为类,对象成为类的实例;
3 实例关系和继承关系是对象之间的静态关系;
4 消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。
1,封装性:
封装性是指将对象相关的信息和行为状态捆绑成一个单元,即将对象封装为一个具体的类。封装隐藏了对象的具体实现,当要操纵对象时,只需调用其中的方法,而不用管方法的具体实现。
2,继承性:
一个类继承另一个类,继承者可以获得被继承类的所有方法和属性,并且可以根据实际的需要添加新的方法或者对被继承类中的方法进行重写,被继承者称为父类或者超类,继承者称为子类或导出类,继承提高了程序代码的可重用性,Java中一个子类只能继承一个父类,Object类是所有类的最终父类。
3,多态性:
多态性是指不同的对象对同一事物而做出的相同行为,一个类A可以指向其自身类和其导出类,一个接口可以指向其接口实现类,在方法参数中,使用多态可以提高参数的灵活性。
整个程序项目结构如下:
注:上述图中只有2个包有用,其余包是没用的,不需要建立,是当初程序设计时的另一个实验,不过本次实验已经上将一次实验的内容包含进去了,功能也相对完善。
package cn.edu.nwsuaf.jp.p4.data;
public abstract class Product {
public String name;
public double price;
public static int num;//用来统计数量
public Product(String name,double price){
this.name=name;
this.price=price;
num++;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
子类Mobile代码如下;
package cn.edu.nwsuaf.jp.p4.data;
public class Mobile extends Product{
public double price1;
public Mobile(String name, double price ,double price1) {
super(name, price);
//通过super继承父类属性和方法
this.price1=price1;
}
@Override
public String toString() {
return name+"(" + price1 + "), " + price + " RMB";
}
}
子类MP3Player代码如下:
package cn.edu.nwsuaf.jp.p4.data;
public class MP3Player extends Product{
public MP3Player(String name, double price) {
super(name, price);
}
@Override
public String toString() {
return name+"on China Mobile, " + price + " RMB";
}
}
package cn.edu.nwsuaf.jp.p4;
import javax.swing.JOptionPane;
import cn.edu.nwsuaf.jp.p4.data.MP3Player;
import cn.edu.nwsuaf.jp.p4.data.Mobile;
import cn.edu.nwsuaf.jp.p4.data.Product;
public class Store {
public static void main(String[] args) {
// TODO Auto-generated method stub
Mobile m1=new Mobile("Meizo X3",399.0,256);
Mobile m2=new Mobile("Meizo E5",580.0,512);
Mobile m3=new Mobile("Xlive XM MP3 Play",930.0,256);
MP3Player p1=new MP3Player("E365",1780.0);
MP3Player p2=new MP3Player("M330",1450.0);
JOptionPane.showMessageDialog(null, "The products are \n\n"+m1.toString()+"\n"+m2.toString()+"\n"+m3.toString()+"\n"+p1.toString()+"\n"+p2.toString()+"\n\n"+"There are "+Product.num+" products.");
}
}
要使用showMessageDialog对话框,要导入javax.swing.JOptionPane包。
JOptionPane.showMessageDialog(null, "提示消息.", "标题",JOptionPane.PLAIN_MESSAGE);
结果展示图: