实验三 面向对象程序设计

合集下载

实验 3 面向对象程序设计

实验 3 面向对象程序设计

实验 3 面向对象程序设计一、实验目的理解Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP方式进行程序设计的方法,了解类的继承性和多态性的作用。

二、实验要求1.编写一个体现面向对象思想的程序。

2.编写一个创建对象和使用对象的方法的程序。

3.编写一个显示当前日期和时间的程序。

4.编写不同成员变量修饰方法的程序。

5.编写不同成员方法修饰方法的程序。

6.编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序。

7.编写体现类的多态性(成员方法重载、构造方法重载)的程序。

三、实验内容(一)创建Applet 应用小程序1.创建一个Applet 应用程序P3_1.java 文件。

(1)程序功能:建立一个Applet 小程序,使其可以进行简单的加法运算。

该程序要包含类、接口、属性、方法、事件等面向对象的基本元素。

(2)程序源代码如下。

import java.awt.*;import java.awt.event.*;import java.applet.Applet;public class P3_1 extends Applet implements ActionListener {Label label1=new Label("+");Label label2=new Label("=");TextField field1=new TextField(6);TextField field2=new TextField(6);TextField field3=new TextField(6);Button button1=new Button("相加");public void init() { // 初始化add(field1);add(label1);add(field2);add(label2);add(field3);add(button1);button1.addActionListener(this);}public void actionPerformed(ActionEvent e) { // 处理按钮事件int x=Integer.parseInt(field1.getText())+Integer.parseInt(field2.getText());field3.setText(Integer.toString(x)); // 数值转换为字符串}}2.编写一个浏览Applet 应用程序的页面文件P3_1.HTML,源代码如。

实验三 面向对象程序设计的基本操作

实验三 面向对象程序设计的基本操作

《面向对象程序设计》课内实验报告学生姓名:张学阳学号:1009300132学院: 理学院班级: 数学101课程名称:面向对象程序设计实验题目:面向对象程序设计的基本操作指导教师姓名及职称:胡建平副教授尚宝欣讲师方向实验师2012年10月11日目录一、实验目的 (1)二、实验内容 (1)三、实验要点及说明 (2)四、实现方法 (2)五、实验结果 (2)六、源程序清单 (3)七、思考及总结 (8)一、实验目的1.掌握Java 类的定义、对象的创建和使用方法。

2.掌握Java类中域、方法修饰符的运用。

3.理解Java类的访问控制原理。

二、实验内容定义一个表示学生的Student类,类中包括姓名、学号、年龄、班级4个private数据域,通过构造函数对所有数据域进行初始化,定义方法“获得姓名”、“获得学号”、“获得年龄”,“获得班级”、“修改学号”、“修改班级”,并完成下面操作:1.编写Java Application程序,在程序中创建至少2个不同的Student对象,并将创建的Student对象的所有信息输出。

2.编写Java Applet程序,通过文本框输入学生的姓名、学号、年龄、班级信息创建Student对象,并将Student对象的所有信息在界面上显示输出。

3.在操作2的基础上通过建立新的文本框输入学生的班级和学号,对原来对象的班级和学号信息进行修改,并将修改后对象的所有信息在界面上重新显示输出。

三、实验要点及说明注意一些类和域的定义和使用方法。

四、实现方法1.通过创建2个不同的Student对象,并将创建的Student对象的所有信息输出。

2.通过文本框输入学生的姓名、学号、年龄、班级信息创建Stu dent对象,并将Student对象的所有信息在界面上显示输出。

3.在问题二的基础上,对班级和学号信息进行修改。

五、实验结果1.2.3.六、源程序清单1.public class JavaApplication{public static void main(String args[]){Student num1=new Student("张学阳",32,21,"数学101");Student num2=new Student("袁清晨",31,20,"数学101");System.out.println(num1.toString());System.out.println("学号修改为:"+num1.changeage1());System.out.println("班级修改为:"+num1.changeage2());System.out.println(num2.toString());System.out.println("学号修改为:"+num2.changeage1());System.out.println("班级修改为:"+num2.changeage2());}}class Student{private String name;private int num;private int age;private String cla;Student(String a,int b,int c,String d){name=a;num=b;age=c;cla=d;}public String toString(){String s="姓名:"+name+"\n学号:"+num+"\n年龄:"+age+"\n班级:"+cla;return(s+"\n数据正常!");}public int changeage1(){num=22;return num;}public String changeage2(){cla="信计:101";return cla;}}2.import java.applet.*;import java.awt.*;import java.awt.event.*;public class Java1Applet extends Applet implements ActionListener{Label result;TextField n1,n2,n3,n4;Button btn;private String name;private int num;private int age;private String cla;public void init(){result=new Label("请输入学生基本信息");n1=new TextField(5);n2=new TextField(5);n3=new TextField(5);n4=new TextField(5);btn=new Button("显示");add(n1);add(n2);add(n3);add(n4);add(btn);add(result);btn.addActionListener(this);}public void actionPerformed(ActionEvent e){name=(String)n1.getText();num=Integer.parseInt(n2.getText());age=Integer.parseInt(n3.getText());cla=(String)n4.getText();Student num1=new Student(name,num,age,cla);result.setText(num1.toString()+"---学号修改为:"+num1.changeage1()+"---班级修改为:"+num1.changeage2());}}class Student{private String name;private int num;private int age;private String cla;Student(String a,int b,int c,String d){name=a;num=b;age=c;cla=d;}public String toString(){String s="姓名:"+name+"---学号:"+num+"---年龄:"+age+"---班级:"+cla;return(s+"---数据正常!");}public int changeage1(){num=22;return num;}public String changeage2(){cla="信计:101";return cla;}}3.import java.applet.*;import java.awt.*;import java.awt.event.*;public class Java1Applet extends Applet implements ActionListener {Label result;TextField n1,n2,n3,n4,n5,n6;Button btn;private String name;private int num;private int age;private String cla;public void init(){result=new Label("请输入学生基本信息");n1=new TextField(5);n2=new TextField(5);n3=new TextField(5);n4=new TextField(5);n5=new TextField(5);n6=new TextField(5);btn=new Button("显示");add(n1);add(n2);add(n3);add(n4);add(n5);add(n6);add(btn);add(result);btn.addActionListener(this);}public void actionPerformed(ActionEvent e){//if(e.getActionCommand()=="显示");name=(String)n1.getText();num=Integer.parseInt(n2.getText());age=Integer.parseInt(n3.getText());cla=(String)n4.getText();Student num1=new Student(name,num,age,cla);result.setText(num1.toString());//if(e.getActionCommand()=="修改");name=(String)n1.getText();num=Integer.parseInt(n6.getText());age=Integer.parseInt(n3.getText());cla=(String)n5.getText();Student num2=new Student(name,num,age,cla);result.setText(num1.toString()+"数据修改为:"+num2.toString());}}class Student{private String name;private int num;private int age;private String cla;Student(String a,int b,int c,String d){name=a;num=b;age=c;cla=d;}public String toString(){String s="姓名:"+name+"---学号:"+num+"---年龄:"+age+"---班级:"+cla;return(s+"---数据正常!");}}.七、思考及总结通过这次课内试验学会了Java 类的定义、对象的创建和使用方法、掌握Java类中域、方法修饰符的运用、理解Java类的访问控制原理,感觉收获很大。

20155313实验三《Java面向对象程序设计》实验报告

20155313实验三《Java面向对象程序设计》实验报告

20155313实验三《Java⾯向对象程序设计》实验报告⼀、实验内容XP基础XP核⼼实践相关⼯具⼆、实验要求1.没有Linux基础的同学建议先学习《Linux基础⼊门(新版)》《Vim编辑器》课程2.完成实验、撰写实验报告,实验报告以博客⽅式发表在博客园,注意实验报告重点是运⾏结果,遇到的问题(⼯具查找,安装,使⽤,程序的编辑,调试,运⾏等)、解决办法(空洞的⽅法如“查⽹络”、“问同学”、“看书”等⼀律得0分)以及分析(从中可以得到什么启⽰,有什么收获,教训等)。

报告可以参考范飞龙⽼师的指导3.严禁抄袭,有该⾏为者实验成绩归零,并附加其他惩罚措施。

三、实验步骤1. 在IDEA中使⽤⼯具(Code->Reformate Code)把下⾯代码重新格式化,再研究⼀下Code菜单,找出⼀项让⾃⼰感觉最好⽤的功能。

提交截图,加上⾃⼰学号⽔印。

public class CodeStandard {public static void main(String [] args){StringBuffer buffer = new StringBuffer();buffer.append('S');buffer.append("tringBuffer");System.out.println(buffer.charAt(1));System.out.println(buffer.capacity());System.out.println(buffer.indexOf("tring"));System.out.println("buffer = " + buffer.toString());if(buffer.capacity()<20)buffer.append("1234567");for(int i=0; i<buffer.length();i++)System.out.println(buffer.charAt(i));}}2. 在码云上把⾃⼰的学习搭档加⼊⾃⼰的项⽬中,确认搭档的项⽬加⼊⾃⼰后,下载搭档实验⼆的Complex代码,加⼊不少于三个JUnit单元测试⽤例,测试成功后git add .; git commit -m "⾃⼰学号添加内容";git push;提交搭档项⽬git log的截图,包含上⾯git commit的信息,并加上⾃⼰的学号⽔印信息。

实验 3 面向对象程序设计

实验 3  面向对象程序设计
MyValue MyV=new MyValue();
MyV.setvalue(10);
System.out.println(MyV.getValue());
}
}
2.编写Java代码实现一个计数器类Computer,其中包括:
用CountValue来保存计数器的当前值。
方法Computer(int a)是构造方法并给CountValue赋初值。
public abstract double mb_getPerimeter();
}
public class J_Circle implements J_Shape {
public double m_radius;
public J_Circle(double r)
{
m_radius=r;
}
public double mb_getArea()
}
User(String n, String ps){
name = n; password = ps; nmuber++
}
public String getPassword(){ //密码全部以明文操作,没有使用加密算法
return password;
}
public setPassword(String ps){
{
return(Math.PI*m_radius*m_radius);
}
public double mb_getPerimeter()
{
return(Math.PI*2*m_radius);
}
public static void main(String args[])
{
J_Shape a=new J_Circle(5);

面向对象语言程序设计实验三

面向对象语言程序设计实验三

《面向对象程序设计》实验报告
学号姓名班级
实验编号实验三指导教师王鹤实验时间2015.10.26 一、实验名称
构造函数的重载
二、实验目的及要求
1.掌握类和对象的区别
2.掌握构造函数的使用
3.掌握构造函数的重载
三、实验内容(格式要求:编码一律使用小五号字体,分两栏)
1.创建一个类,为该类定义三个构造函数,分别执行下列操作:1)传递两个整数值并找出其中较大的一个值
2)传递三个double值并求出其乘积
3)传递两个字符串值并检查其是否相同
4)在main方法中测试构造函数的调用
2.编写Addition类,该类中应包含一组实现两数相加运算的重载方法。

实现加法运算的方法,应接受两个参数(即加数和被加数),方法将两个参数进行加法运算后,返回相加结果。

考虑可能针对不同的数据类型进行计算,重载一组方法,包括整型、长整型、浮点型、双精度浮点型、还有字符串。

在main方法中创建Addition类的实例,分别调用重载方法测试其效果。

3.使用初始化参数的方式输入用户名和密码,在程序运行之前必须先判断输入的参数个数是否合法,如果不合法,必须提示用户的程序执行错误,并退出程序,如果用户已经正确地输入了参数,则可以进行用户名及密码的验证。

如果信息正确则显示“欢迎***光临!”,否则显示“错误的用户名及密码”。

四、实验心得(请总结你在本次实验中获得的经验,字数100字左右,五号字宋体,如有雷同实验结果以零分计)。

实验3面向对象程序设计编程

实验3面向对象程序设计编程

实验三:面向对象程序设计编程(8学时)1. 实验特点:方法、重载、继承、多态编程。

类型:验证类别:专业基础计划学时:6学时每组人数:1人2. 实验目的与要求:理解类、对象、构造函数、析构函数;掌握方法法定义、重载、继承、的概念及应用;掌握全局变量、局部变、静态变量的概念和使用方法;理解封装和数据隐藏。

3. 主要仪器设备:计算机4. 实验内容提要:阅读教材面向对象程序设计实例并上机调试分析程序结果。

上机题目:(1)调试构造函数Pen()例题(2)调试构造函数重载Pen()例题(3)使用重载方法求5和5.65的平方。

要求:在主程序中调用重载方法,求一个整数(5)的平方值,返回整数;再调用重载方法,求一个双精度数(5.65)的平方值,返回双精度数。

(4)编写一个控制台程序,完成下列功能并输出结果:①创建一个类Test1,用无参数的构造函数输出该类的类名;②增加一个重载的构造函数,带有一个string类型的参数,在此构造函数中将传递的字符串打印出来;③在Main方法中创建属于Test1类的一个对象,不传递参数;④在Main方法中创建属于Test1类的另一个对象,传递一个字符串“This is a string”;(5)编写一个控制台程序,完成下列功能并输出结果:①创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果;②再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果;③在Main方法中分别创建类A和类B的对象,并分别调用MyMethod方法;(6)利用委托实现:当用户输入一个字符’1’时,调用两个整数相加的方法,计算两整数之和;当用户输入一个字符’2’时,调用两个整数相减的方法,计算两整数之差。

5. 实验操作要点:事先阅读程序,上机时调试、修改程序,对输出的运行结果进行分析。

6.注意事项: 掌握构造函数、继承和方法重载、多态性、委托的定义和使用方法。

实验3 面向对象程序设计基本操作(下)

实验3  面向对象程序设计基本操作(下)

实验三面向对象程序设计基本操作(下)――继承﹑接口与多态问题1:定义父类和子类, 测试继承关系。

知识点解析: 通过示例加深和巩固对继承原则的认识和使用.示例:示例1 课本例3.4示例2 补充例3.1 动物继承示例3 Cat.java TestExtends.java问题2:上转型对象\隐藏与覆盖。

知识点解析: 通过示例理解并掌握父类与子类继承关系中隐藏和覆盖的用法,掌握上转型对象调用父类与子类同名变量和同名方法的原则.示例:示例1 课本例3.5示例2课本例3.6问题3:super引用。

知识点解析: 通过示例掌握super的两种调用方式.示例:示例1 补充例 3.2 super引用示例2 TestExtends2.java TestSuper.java问题4:对象初始化顺序。

知识点解析: 通过示例掌握对象的初始化顺序.示例:示例1 补充例3.3 对象初始化顺序问题5:abstract修饰的类与方法。

知识点解析: 通过示例掌握abstract类和abstract方法.示例:TestAbstract.java问题6:final修饰。

知识点解析: 通过示例掌握final类﹑final方法和final 变量.示例:TestFinal.java问题7:接口与实现类。

知识点解析: 通过示例掌握接口的用法和多重继承关系.示例:补充例3.5 接口练习题(前三题至少选择一个完成)1.声明三角形类Triangle,实现了图形接口Shape。

该Shape接口声明了抽象方法double area()和double perimeter(),编写测试类计算三角形的周长和面积。

(考核点:接口)2.已知:一个父类Telephone代表电话类,Telephone类中包含有电话品牌、电话号码、通话时间、费率(即收费标准)等属性,以及计算话费和显示信息等方法。

要求:写一个子类Mobilephone代表移动电话,要求类Mobilephone具有如下性质:1)是电话类Telephone的子类;2)除了具有Telephone类的属性外,它还有自己的属性:网络类型network,String类型;被叫时间receivedTime,double类型。

实验3_面向对象的程序设计(二)

实验3_面向对象的程序设计(二)

实验三:面向对象的程序设计(二)实验目的:1.掌握类的继承、方法覆盖和变量的隐藏。

2.理解父类与子类的关系及创建方法。

3.掌握子类对象创建过程中与父类构造函数的关系。

4.了解抽象类与抽象方法。

5.掌握多态的实现机理及方法。

6.掌握接口的定义和使用7.了解接口的设计方法8.掌握包的定义和使用实验步骤:一. 继承类的访问修饰符练习1. 定义一个父类,有不同访问级别的成员变量和方法;2. 源代码如下:3. 再定义一个子类,继承上面的父类,访问父类的成员变量和成员方法。

4. 子类源代码如下:5. 分析上面main方法的每一步中,哪些成员变量和方法可以访问,哪些不能访问?填写下面表格中的预测结果,可以访问的填“Y”,不可以访问的填“N”。

表4-1-1 实验结果6. 编写上述代码,编译运行代码,查看程序执行结果,并填写表4-1-1中的验证结果。

二. 成员变量的隐藏和方法覆盖练习1. 以下程序具有继承、成员的覆盖与隐藏的概念。

2. 源代码如下:3. 编写上述代码,编译运行代码,查看程序执行结果。

●子类Son中隐藏了父类Father哪个变量?覆盖了哪个方法?●根据上述程序,分析方法重载与方法覆盖的区别。

三.类的多态性的练习1.下面源代码演示了多态的各种特性。

2. 源代码如下:3. 编写上述代码,编译运行代码,查看程序执行结果。

●分析上述代码中的who.var和who.staticVar、who.method()和who.staticMethod()的输出结果有什么不同?为什么存在这种现象?● 分析以下代码,编译时会有什么问题?为什么?●分析以下代码,如何能让who访问Sub类的成员?●分析以下代码,运行会有什么问题?为什么?四.接口相关练习1. 定义一个rec_Area_Peri接口,里面有两个方法getArea()和getPerimeter(),分别表示“计算面积”和“计算周长”;再定义一个Rectangle类,实现接口rec_Area_Peri。

面向对象程序设计(C++)实验报告

面向对象程序设计(C++)实验报告

面向对象程序设计(C++)实验报告姓名:刘九州学院:数学与计算机学院班级:10级计算机大类三班学号:100511314实验5 单继承一、实验目的1.掌握派生的类别与方式;2.了解派生类中如何使用基类的成员、基类成员在派生类中的访问控制;3. 掌握继承中构造函数和析构函数的调用过程。

二、实验内容及步骤1.给出一个Document类,从Document派生出Book类,增加PageCount变量。

在主函数中进行测试,创建Book类对象并进行初始化,输出书名和页数。

2.设计一个单基继承的类层次程序,利用Person类派生出Student类,增加属性xh(学号),Person类中至少有姓名、年龄等数据成员,成员函数中构造函数对其初始化,析构函数释放相应存储单元,输出函数输出其数据成员的值,其它成员函数根据需要添加,在主函数中进行测试。

3.设计一个人员类person和一个日期类date,由人员类派生出学生类student和教师类professor,学生类和教师类的数据成员birthday为日期类。

在主函数中进行测试。

三、实验源程序和运行结果实验(一)源程序:#include<iostream>#include<string>using namespace std;class Document{public:Document(){};~Document();Document(char*name);char *Name;void PrintNameOf();};Document::Document(char*name){Name=new char[strlen(name+1)];strcpy(Name,name);}Document::~Document(){delete []Name;}void Document::PrintNameOf(){cout<<Name<<endl;}class Book:public Document{public:int PageCount;Book(char *a,int b):Document(a){PageCount=b;}};void main(){char BookName[20];int n;cout<<"请输入书名:"<<endl;cin>>BookName;cout<<"请输入书的页数:"<<endl;cin>>n;Book b(BookName,n);cout<<"书名为:"<<<<endl;cout<<"页数为:"<<b.PageCount<<endl;}运行结果:实验(二)源程序:#include<iostream>#include<string>using namespace std;class person{public:person(){name="张三";age=0;}person(string c,int a){name=c;age=a;}~person(){}void setname(string c){name=c;}string getname(){return name;}void setage(int a){age=a;}int getage(){return age;}private:string name;int age;};class student:public person{public:student(){xh=0;}student(int d){xh=d;}student(string c,int a,int d):person(c,a){xh=d;}~student(){}void setxh(int d){xh=d;}int getxh(){return xh;}private:int xh;};void main(){string c;cout<<"请输入学生的姓名:\n";cin>>c;cout<<"请输入学生的年龄:\n";int a;cin>>a;cout<<"请输入学生的学号:\n";int d;cin>>d;student n(c,a,d);cout<<"请输入学生的姓名为:"<<n.getname()<<endl;cout<<"请输入学生的年龄为:"<<n.getage()<<endl;cout<<"请输入学生的学号为:"<<n.getxh()<<endl; }运行结果:实验(三)源程序:#include<iostream>using namespace std;class person{public:person(){name="张三";age=0;}person(string c,int a){name=c;age=a;}~person(){}void setname(string c){name=c;}string getname(){return name;}void setage(int a){age=a;}int getage(){return age;}private:string name;int age;};class date{public:date(){year=2011;month=12;day=17;}~date(){}date(int y,int m,int d){year=y;month=m;day=d;}int getyear(){return year;}int getmonth(){return month;}int getday(){return day;}private:int year;int month;int day;};class student:public person{public:student(){// birthday.date();}student(int y,int m,int d):birthday(y,m,d){}~student(){}void getbirthday(){cout<<"学生的生日为:\n";cout<<birthday.getyear()<<"年"<<birthday.getmonth()<<"月"<<birthday.getday()<<"日"<<endl;}private:date birthday;};class teacher:public person{public:teacher(){// birthday.date();}teacher(int y,int m,int d):birthday(y,m,d){//birthday.date(y,m,d);}~teacher(){}void getbirthday(){cout<<"老师的生日为:\n";cout<<birthday.getyear()<<"年"<<birthday.getmonth()<<"月"<<birthday.getday()<<"日"<<endl;}private:date birthday;};void main(){cout<<"请输入学生的生日:"<<endl;int y,m,d;cin>>y>>m>>d;student s(y,m,d);cout<<"请输入老师的生日:"<<endl;cin>>y>>m>>d;teacher t(y,m,d);s.getbirthday();t.getbirthday();}运行结果:实验6 多继承一、实验目的1.掌握多基继承的使用,访问方法;2.理解类层次中访问规则;3.掌握虚基类的定义及使用。

JAVA语言程序设计实验报告

JAVA语言程序设计实验报告

实验一、安装JDK并熟悉java的运行环境实验二、基本语法练习实验三、面向对象编程实验(4)实验四、异常处理实验实验五、小应用程序实验实验六、图形图像实验实验七、GUI(图形用户接口)实验(4)实验八、多线程实验实验九、输入输出流实验(4)实验十、数据库应用实验(4)实验一、安装JDK并熟悉java的运行环境一、实验目的熟悉JA V A的运行环境及学习简单的编程。

二、预习内容安装工具软件的基本方法。

三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容安装Eclipse及JA V A的核心编译程序J2SDK。

1、打开Eclipse的安装盘安装Eclipse。

2、在相同目录下安装J2SDK。

3、打开Eclipse软件对J2SDK文件进行配置。

4、编写一应用程序,在屏幕上显示“HELLO WORLD”和爱心标志。

Pulic class Hello{public static void main(String args[]){//在屏幕上显示“HELLO WORLD”和爱心标志}}5、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”和爱心标志。

实验结果五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验六、说明本次实验建议学时数2学时七、实验总结与体会实验二、基本语法练习一、实验目的⒈熟悉Java的基本语法⒉编写应用程序接收命令行参数⒊编写应用程序接收用户从键盘的输入⒋掌握字符串与数组的基本方法二、预习内容java编程的基本结构三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容⒈编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。

应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。

(1)编辑A verage.java。

class A verage{public static void main(String args[ ]){double n,sun=0;for (int l=0;l<args.legth;l++){sum=sum+Double.valueOf(arg[l].doubleV alue();)}n=sum/args.length;System.out.println(“average=”+n);}}命令行参数:12.34 34.45 21212121注意:1)参数的个数可以利用args.length来取得。

《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)要点

《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)要点

面向对象程序设计实验指导书(适用:电子信息11级)彭召意陶立新编写计算机与通信学院2014.9目录实验一 C++基础的应用 (1)实验二类和对象的应用 (3)实验三类的构造函数、析构函数的应用 (4)实验四友员和运算符重载 (5)实验五类的继承与派生 (6)实验六类的多态性与虚函数 (7)附录:各实验的程序代码 (8)实验一 C++基础的应用(实验课时:2 实验性质:设计)实验名称: C++基础的应用实验目的: (1)进一步学习VC++6.0开发环境及程序调试方法。

(2)练习C++函数的定义及使用;(3)练习C++数组的定义及使用;(4)练习C++指针的定义及使用;(5)练习C++结构体的定义及使用;(6)练习多文件的程序的编译和运行方法;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.0。

实验内容: (1)熟悉Visual C++6.0编译系统的常用功能,特别是debug调试功能;(2)编程1:编写一个程序c1.cpp,用来求2个或3个整数的最大数。

要求:用重载函数的方法来求最大数;函数原型:int max( int a, int b) 和int max( int a, int b,int c)。

(3)编程2:编写一个程序c2.cpp,求:a!+ b! + c!的值。

要求:使用递归函数。

主程序和函数分开到两个源程序文件中,分别进行编译后,再运行;(4)编程3:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号;(5)编程4:建立一个动态链表并进行输出和删除管理。

链表的每个节点为学生信息,包括:学号,姓名,性别,下一学生信息的指针。

程序的工作:(a)建立三个学生信息的节点,然后顺序输出该三个学生信息;(b)删除中间的节点,再顺序输出学生信息。

《Java程序设计》上机实验报告 实验三 面向对象程序设计的继承、多态等特性的练习

《Java程序设计》上机实验报告 实验三   面向对象程序设计的继承、多态等特性的练习

信息科学与工程学院《Java程序设计》上机实验报告专业班级姓名学号实验时间指导教师成绩主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)Student(String name,String sex,int age,String sno,String classno) {super(name,sex,age);this.sno=sno;this.classno=classno;}public String toString(){ return("姓名:"+name+" 性别:"+sex +" 年龄:"+age+ " 学号:"+sno+" 班号:"+classno+" ");}}public class TestStudentPerson {public static void main(String[] args){int i;Student stu[]=new Student[3];stu[1]=new Student("小明","男",20,"200912135138","2班");stu[2]=new Student("小木","女",23,"200912135136","5班");stu [1].updateAge(25);stu [2].updateAge(26);for(i=1;i<3;i++){System.out.println(stu[i]);}}}2)调试结果:主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)调试结果:2)将Shape类定义为abstact class Shape{……}public class TestVirtualInvoke {static void doStuff(Shape s){s.draw();}public static void main(String[] args) {Circle c=new Circle();Triangle t=new Triangle();Line l=new Line();doStuff(c); //作为实参,调用对象是3个类对象,上溯造型使其隐藏.doStuff(t);doStuff(l);}}abstract class Shape{abstract void draw();}class Circle extends Shape{void draw(){System.out.println("Draw Circle");}} //定义Shape抽象类的派生类Circleclass Triangle extends Shape{void draw(){System.out.println("Draw Three Triangle");}}//定义Shape抽象类的派生类Triangleclass Line extends Shape{void draw(){System.out.println("Draw Line");}}//定义Shape抽象类的派生类Line主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)调试结果:3)将Shape定义为interface Shape{……}public class TestVirtualInvoke {static void doStuff(Shape s){s.draw();}public static void main(String[] args) {Circle c=new Circle();Triangle t=new Triangle();Line l=new Line();doStuff(c); //作为实参,调用对象是3个类对象,上溯造型使其隐藏.doStuff(t);doStuff(l);}}interface Shape{public void draw();} //定义一个Shape接口class Circle implements Shape{public void draw(){System.out.println("Draw Circle");}} //基于Shape接口利用implements实现类Circleclass Triangle implements Shape{public void draw(){System.out.println("Draw Three Triangle");}}class Line implements Shape{public void draw(){System.out.println("Draw Line");}}调试结果:3.思考题:某小型公司,主要有三类人员:经理、兼职技术人员和兼职推销员。

面向对象程序设计实验报告

面向对象程序设计实验报告

面向对象程序设计实验报告【实验报告】面向对象程序设计一、引言面向对象程序设计是一种以对象为基础的软件开发方法,它将现实世界中的事物抽象成对象,并通过对象之间的交互来实现程序的功能。

本次实验旨在通过实践,加深对面向对象程序设计的理解,并掌握面向对象程序设计的基本原理和技巧。

二、实验目的1. 熟悉面向对象程序设计的基本概念和术语;2. 掌握面向对象程序设计的基本原理和技巧;3. 能够运用面向对象程序设计的思想解决实际问题。

三、实验内容1. 设计一个简单的图书管理系统;2. 实现图书的增删改查功能;3. 设计并实现图书管理系统的类结构;4. 编写测试代码,验证图书管理系统的功能。

四、实验步骤1. 设计图书管理系统的类结构:a. 创建一个Book类,包含图书的属性(书名、作者、出版社等)和方法(借阅、归还等);b. 创建一个Library类,用于管理图书馆的图书,包含添加图书、删除图书、查找图书等方法;c. 创建一个User类,用于表示图书馆的用户,包含借书、还书等方法;d. 创建一个Main类,作为程序的入口,用于测试图书管理系统的功能。

2. 实现图书的增删改查功能:a. 在Book类中实现图书的增删改查方法;b. 在Library类中调用Book类的方法,实现图书的增删改查功能。

3. 设计并实现图书管理系统的类结构:a. 根据实验要求,设计图书管理系统的类结构,包括Book、Library和User 类;b. 在每个类中定义相应的属性和方法,实现图书管理系统的功能。

4. 编写测试代码,验证图书管理系统的功能:a. 在Main类中创建图书馆和用户对象;b. 调用相应的方法,测试图书管理系统的功能;c. 检查输出结果,确保图书管理系统的功能正常运行。

五、实验结果与分析经过实验,成功设计并实现了一个简单的图书管理系统。

该系统具备图书的增删改查功能,用户可以通过借书和还书操作实现对图书的借阅和归还。

经过多次测试,系统运行稳定,功能正常。

面向对象程序设计-实验3内容及要求

面向对象程序设计-实验3内容及要求

《面向对象程序设计》实验3内容及要求一、实验题目类的继承与多态(2学时)二、实验目的、任务通过使用类的继承与多态创建新类,进一步了解类的继承和多态概念,掌握java程序中类的继承和多态的使用方法,掌握类成员的重载和覆盖的区别及应用。

三、实验基本要求(1)认真学习、掌握与本实验相关的知识。

(2)设计并编写代码完成题目要求的任务。

(3)撰写实验报告。

实验报告统一采用洛阳理工学院实验报告纸张。

四、实验内容本次实验要求学生采用java语言编写使用类的继承和多态的应用程序,实现以下要求。

1. 定义描述平面中点的类Point,包含实数坐标值(x,y),包含以下方法:(1)三个构造方法,分别为无参构造方法(x、y初始化为0)、提供x和y值的有参数构造方法,拷贝构造方法。

(2)转换为字符串(形式如“(12.5, 34)”)的方法toString( )。

(3)判断与另外点p是否位置相同的方法equals(Point p)。

(4)改变点自身位置的方法changeBy(dx,dy),dx、dy分别为该点在x、y坐标方向上的位移量。

2. 继承类Point定义像素类Pixel,增加数据成员color(其类型为实验2定义的颜色类Color),定义以下方法:(1)无参构造方法(x, y为0,color为黑色),提供x、y、color值的有参构造方法。

(2)覆盖toString()方法,转换为形式“(x, y)RGB(r, g, b)”的字符串。

(3)定义方法Point getPoint(),Color getColor(),分别获得Pixel对象的位置和颜色。

(4)改变像素自身值的方法changeBy(color),color为要改变的颜色值。

3. 另设计一个类,在其中定义main()方法,测试以上两个类的功能,解释产生的结果。

(1)定义Point类的两个点p1(0,0)、p2(20,30),拷贝构造p3(20,30);(2)以字符串“p1(0,0)、p2(20,30)、p3(20,30)”形式输出三个点;(3)用equals判断p2与p3是否相等,输出结果;(4)定义Pixel类的两个像素pixel1(10,5,红色)、pixel2(10,5,蓝色);(5)分别以字符串“(x, y)RGB(r, g, b)”形式输出像素pixel1、像素pixel2的值;(6)用equals判断pixel1与pixel2是否相等,输出结果;(解释结果和使用的方法);(7)移动Pixel1的位置,移动量为(-5,5),改变Pixel1的颜色为绿色;(解释使用的方法);(8)使p1=pixel1; 以字符串输出p1;(解释结果和使用的方法);(9)使用p1.getPoint(); p1.getColor()获得pixel1像素的位置和颜色;(解释出现的情况);。

面向对象程序设计实验三

面向对象程序设计实验三

实验班级、时间:2014级计算机工科1班,9月22日;9月29日2014级计算机工科2班,9月22日;9月29日实验三类与对象(一)(4学时)✧实验目的和要求:1.掌握类、类的数据成员、类的成员函数的定义方式。

2.理解类成员的访问控制方式。

3.掌握对象的定义和操作对象的方法。

4.理解和掌握构造函数、析构函数、拷贝构造函数的定义与执行过程。

5.掌握重载构造函数的方法。

6.理解浅拷贝与深拷贝。

7.了解对象的生存期。

✧实验内容:1.设计三个图形类:Circle(圆)、Rectangle(矩形)、Triangle(三角形),要求:(1)Circle 类基本信息:圆心坐标、半径;Rectangle 类基本信息:长、宽;Triangle 类基本信息:三个顶点坐标;其中:成员变量为private 属性,成员函数为public 属性。

(2)为Circle类设计缺省的构造函数,并用init成员函数进行数据成员的初始化。

(3)为其余两个类设计多个构造函数:无参、带参、参数值缺省的构造函数。

(4)每个图形类有计算图形的面积GetArea(),计算图形的周长GetPerimeter(),显示图形的基本信息函数Show(),修改基本信息的函数Set(形参)。

以Circle 类为例:通过GetArea()计算圆的面积,GetPerimeter()计算圆的周长,Show()函数中显示圆心坐标、直径、周长、面积等基本信息;Set(int x,int y, int r)函数可以修改圆心坐标和半径。

(5)注意多个构造函数的声明方式与定义的实现。

(6)当输入数据为不合理数据时(例如:输入的三角形的顶点是否能组成一个三角形),提示用户输入错误。

2.一维数组是应用极为广泛的数据结构,但是C++语言的数组没有下标越界检查,因而极易出错。

请定义一个安全的一维整型数组类intArray,要求:(1)基本信息:存储数据的基址指针,数组的大小,均定义为private属性。

面向对象程序设计实验报告

面向对象程序设计实验报告

《面向对象程序设计实验》实验一、Java实验环境的建立(2学时)1、目的要求(1)掌握Java编程环境的搭建过程;(2)掌握Jcreator pro软件的使用方法;(3)能使用Java doc文档。

2、实验内容(1)下载并安装,配置JDK环境变量;(2)下载Javadoc压缩包并解压在JDK安装路径下;(3)下载Jcreator pro 并安装和配置使用环境;(4)使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。

①Java application程序代码如下:public class HelloJava{public static void main(String args[]){ "Hello Java!"); }}②Java applet程序代码如下:import .*;public class Hello extends{public void paint(Graphics g){ ("Hello!",30,30); }}3、仪器与材料:计算机实验二、Java语言程序设计训练(2学时)1、目的要求(1)输入、输出操作实现原理和方法;(2)掌握程序流程控制的实现方法;(3)掌握数组的定义和操作方法。

2、实验内容(1)计算 Result=1!+2!+3!+...+10!。

public class Test3 {public static void main(String[] args) {int sum = 0, fact, n, i;for (n = 1; n <= 10; n++) {fact = 1;for (i = 1; i <= n; i++)fact *= i;sum += fact;}"sum=" + sum);}}(2)计算1---50之间所有素数的和。

public class Main {public static void main(String[] args) {int sum = 0;for ( int i = 2; i < 51; i++ ){int j;for ( j = 2; j < i / 2; j++ ){if (i % j == 0)break;}if (i % j != 0 || i == j){sum += i;}}(sum);}}3、仪器与材料:计算机实验三、面向对象的程序设计(2学时)1、目的要求(1)熟悉类的创建方法;(2)掌握对象的声明与创建;(3)掌握构造方法及实例方法的区别与用法;(4)能利用面向对象的思想解决一般问题。

面向对象程序设计实验报告

面向对象程序设计实验报告

面向对象程序设计实验报告实验一C++基础1.1实验目的1.了解并熟悉开发环境,学会调试程序;2.熟悉C++中简单的标准输入输出函数的使用方法;3.理解const修饰符的作用并学会应用;4.理解内联函数的优缺点并学会其使用场合;5.理解并学会函数重载;6.理解并熟练掌握使用new和delete来分配内存;7.理解并熟练掌握引用的使用方法。

1.2实验内容1.2.1程序阅读1.理解下面的程序并运行,然后回答问题。

#include<iostream.h>int max_def(int x,int y){return(x>y?x:y);}int max_def(int x,int y,int z){int temp=0;return(temp=(x>y?x:y))>z?temp:z;}double max_def(double x,double y){return(x>y?x:y);}int main(){int x1=0;int x2=0;double d1=0.0;double d2=0.0;x1=max_def(5,6);x2=max_def(2,3,4);d1=max_def(2.1,5.6);d2=max_def(12.3,3.4,7.8);-------------------------------------------------------①cout<<"x1="<<x1<<endl;cout<<"x2="<<x2<<endl;cout<<"d1="<<d1<<endl;cout<<"d2="<<d2<<endl;--------------------------------------------------------②return 1;}问题一:上述程序的输出结果是什么?答:输出结果为问题二:①处调用的是哪个函数?答:①处调用的是double max_def(double x,double y)函数问题三:②处的输出结果为什么是d2=12,而不是d2=12.3?答:因为调用的int max_def(int x,int y,int z)函数返回值为整型。

C++面向对象程序设计实验三 类和对象

C++面向对象程序设计实验三 类和对象

学长只能帮你到这了
要想学习好,努力少不了
int y; }; void main() { CPoint p; p.print(); CPoint p1(1,2); //构造函数不能显示调用 p1.print(); //即 CPoint p1;p1.CPoint(1,2); CPoint p2=p1; //运行时会出错。 p2.print(); }
学长只能帮你到这了
要想学习好,努力少不了
{ CPoint pt; pt.Set(10,20); pt.Print(); }
问题一:以上程序编译能通过吗,试解释该程序? 答:可以通过, 问题二:以上程序的运行结构是否正确,如果不正确,试分析为什么,应该如何改正? 共有变量与私有变量名一样,调用的时候调用了私有变量,而私有变量没有值所以是
学长只能帮你到这了
要想学习好,努力少不了
ps.Print(); }
问题一:以上程序存在三处大错误,在不改变主函数内容的前提下,试改正该程序。 答:把成员函数都改成公有;函数的参数应该有数组或字符串的定义才可以传递“张三” 。 主函数中对构造函数的引用也有错。 class CPerson{ public: void Print(); CPerson(int ,char s[10]); private: int age; char *name; }; CPerson::CPerson(int a,char s[10]) { age=a; name=s; } void CPerson::Print() { cout<<"name="<<name<<",age="<<age<<endl; } void main() { CPerson ps(23,"张三"); ps.Print();

面向对象程序设计课程实验报告

面向对象程序设计课程实验报告

课程实验报告课程名称:面向对象程序设计院系:专业班级:学号:姓名:指导教师:目录实验一.面向过程的整型栈编程 (1)1.需求分析 (1)1.1题目要求 (1)1.2需求分析 (2)2.系统设计 (2)2.1概要设计 (2)2.2详细设计 (3)4.软件测试 (5)5.特点与不足 (6)5.1技术特点 (6)5.2不足和改进的建议 (6)6.过程和体会 (6)6.1遇到的主要问题和解决方法 (6)6.2课程设计的体会 (7)7.源码和说明 (7)7.1文件清单及其功能说明 (7)7.2用户使用说明书 (7)7.3源代码 (7)实验二.面向对象的整型栈编程 (17)1.1题目要求 (17)1.2需求分析 (18)2.系统设计 (18)2.1概要设计 (18)2.2详细设计 (18)3.软件开发 (20)4.软件测试 (20)5.特点与不足 (20)5.1技术特点 (20)5.2不足和改进的建议 (21)6.过程和体会 (21)6.1遇到的主要问题和解决方法 (21)6.2课程设计的体会 (21)7.源码和说明 (21)7.1文件清单及其功能说明 (21)7.2用户使用说明书 (21)7.3源代码 (21)实验三.基于算符重载的整型栈编程 (27)1.需求分析 (27)1.2需求分析 (28)2.系统设计 (28)2.1概要设计 (28)2.2详细设计 (28)3.软件开发 (29)4.软件测试 (29)5.特点与不足 (29)5.1技术特点 (29)5.2不足和改进的建议 (29)6.过程和体会 (30)6.1遇到的主要问题和解决方法 (30)6.2课程设计的体会 (30)7.源码和说明 (30)7.1文件清单及其功能说明 (30)7.2用户使用说明书 (30)7.3源代码 (30)实验四. 面向对象的整型队列编程 (35)1.需求分析 (35)1.1题目要求 (35)2.系统设计 (36)3.软件开发 (36)4.软件测试 (36)5.特点与不足 (37)5.1技术特点 (37)5.2不足和改进的建议 (37)6.过程和体会 (37)6.1遇到的主要问题和解决方法 (37)6.2课程设计的体会 (37)7.源码和说明 (37)7.1文件清单及其功能说明 (37)7.2用户使用说明书 (38)7.3源代码 (38)实验五. 基于组合的整型队列编程 (43)1.需求分析 (43)1.1题目要求 (43)1.2需求分析 (44)2.系统设计 (44)4.软件测试 (44)5.特点与不足 (45)5.1技术特点 (45)5.2不足和改进的建议 (45)6.过程和体会 (45)6.1遇到的主要问题和解决方法 (45)6.2课程设计的体会 (45)7.源码和说明 (45)7.1文件清单及其功能说明 (45)7.2用户使用说明书 (45)7.3源代码 (46)实验六. 基于继承的整型队列编程 (52)1.需求分析 (52)1.1题目要求 (52)1.2需求分析 (53)2.系统设计 (53)3.软件开发 (53)4.软件测试 (53)5.1技术特点 (54)5.2不足和改进的建议 (54)6.过程和体会 (54)6.1遇到的主要问题和解决方法 (54)6.2课程设计的体会 (54)7.源码和说明 (55)7.1文件清单及其功能说明 (55)7.2用户使用说明书 (55)7.3源代码 (55)实验一.面向过程的整型栈编程1.需求分析1.1题目要求整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。

实验三 面向对象程序设计

实验三 面向对象程序设计

学号:《面向对象程序设计》实验报告与习题册2014 / 2015 学年第1学期系别计算机科学与技术系专业计算机软件班级姓名指导教师目录实验三面向对象程序设计一实验目的与要求1、编写java应用程序,完成类、对象的创建及使用;完成成员方法和构造方法的创建及使用。

2、掌握权限访问控制符public和private的用法;实现类的继承;实现变量的隐藏和方法的重写;实现成员方法和构造方法的重载;掌握多态的意义,学会多态在程序设计中的应用。

3、编写java应用程序,完成接口的实现;体会抽象类和接口的区别;体会接口的继承原理;将接口和类分别定义在不同的包中,掌握包的使用。

二实验内容1、定义一个学生类,为其添加成员变量为学号、年龄、姓名、班级和学校,其中学号为最终变量,学校为类变量;为其添加构造方法以完成对学生对象的初始化;为其添加成员方法getInfo(),作用是获取学生的所有信息;在main 中创建一个学生对象,并验证学生类中所有方法。

public class Student{final int sid=1210431087;int age;String name;int grade;public static String school="合肥师范学院";Student(){age = 22;name = "何楚伟";grade = 1;}public void getInfo(){System.out.println("学生学号:"+ sid);System.out.println("学生年龄:"+ age);System.out.println("学生姓名:"+ name);System.out.println("所在班级:"+ grade);System.out.println("所在学校:"+ school);}public static void main(String[] args){Student t = new Student();t.getInfo();}}2、在第一题的基础上,添加三个成员方法以用来改变年龄、姓名、班级的值;添加五个成员方法以用来分别获取学号、年龄、姓名、班级和学校的值;在main中创建一个学生对象,并验证这些方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学号:《面向对象程序设计》实验报告与习题册2014 / 2015 学年第1学期系别计算机科学与技术系专业计算机软件班级姓名指导教师目录实验三面向对象程序设计一实验目的与要求1、编写java应用程序,完成类、对象的创建及使用;完成成员方法和构造方法的创建及使用。

2、掌握权限访问控制符public和private的用法;实现类的继承;实现变量的隐藏和方法的重写;实现成员方法和构造方法的重载;掌握多态的意义,学会多态在程序设计中的应用。

3、编写java应用程序,完成接口的实现;体会抽象类和接口的区别;体会接口的继承原理;将接口和类分别定义在不同的包中,掌握包的使用。

二实验内容1、定义一个学生类,为其添加成员变量为学号、年龄、姓名、班级和学校,其中学号为最终变量,学校为类变量;为其添加构造方法以完成对学生对象的初始化;为其添加成员方法getInfo(),作用是获取学生的所有信息;在main 中创建一个学生对象,并验证学生类中所有方法。

public class Student{final int sid=1210431087;int age;String name;int grade;public static String school="合肥师范学院";Student(){age = 22;name = "何楚伟";grade = 1;}public void getInfo(){System.out.println("学生学号:"+ sid);System.out.println("学生年龄:"+ age);System.out.println("学生姓名:"+ name);System.out.println("所在班级:"+ grade);System.out.println("所在学校:"+ school);}public static void main(String[] args){Student t = new Student();t.getInfo();}}2、在第一题的基础上,添加三个成员方法以用来改变年龄、姓名、班级的值;添加五个成员方法以用来分别获取学号、年龄、姓名、班级和学校的值;在main中创建一个学生对象,并验证这些方法。

package javasy;public class Student {private static final int ID=1210431087;private int age;private String name;private String grade;private School school;public Student(int age, String name, String grade, School school) { this.age = age; = name;this.grade = grade;this.school = school;}public void setAge(int age) {this.age = age;}public void setName(String name) { = name;}public void setGrade(String grade) {this.grade = grade;}public void setSchool(School school){this.school = school;}public static int getId() {return ID;}public int getAge() {return age;}public String getName() {return name;}public String getGrade() {return grade;}public School getSchool() {return school;}public void getInfo(){System.out.println("该学生的姓名为:"+name);System.out.println("该学生的学号为:"+ID);System.out.println("该学生的年龄为:"+age);System.out.println("该学生的班级为:"+grade);System.out.println("该学生的学校为:"+);}public static void main(String[] args) {School xx = new School(); = "合肥师范学院";Student xs = new Student(22,"何楚伟","12级软件一班",xx) ;xs.getInfo();System.out.println("*******************");xs.setAge(21);xs.setGrade("计算机软件一班");xs.setName("何楚伟");System.out.println("该学生的姓名为:"+xs.getName());System.out.println("该学生的学号为:"+xs.getId());System.out.println("该学生的年龄为:"+xs.getAge());System.out.println("该学生的班级为:"+xs.getGrade());System.out.println("该学生的学校为:"+xs.getSchool().name);}}class School{String name;}3、修改学生类中成员的访问权限,体会public和private两种访问权限的用法。

答:public 使用对象:类、接口、成员介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可以访问的。

Private 使用对象:成员介绍:成员只可以在定义它的类中被访问。

4、定义一个People类,它包含属性有姓名name和性别sex,为People 类派生出一个子类Employee类,为其增加两个属性年龄age和工资等级grade,工资等级分A、B、C三个等级,在子类中增加用于打印出员工的姓名、性别、年龄和工资等级的方法print,编写一个应用程序,测试定义的类。

public class People{private String name;private String sex;public void setName(String name){ = name;}public void setSex(String sex){this.sex=sex;}public String getName(){return name;}public String getSex(){return sex;}public static void main(String[] args) {Employee ee = new Employee();ee.setName("何楚伟");ee.setSex("男");ee.setAge(22);ee.setGrade('B');ee.print();}}class Employee extends People{private int age;private char grade;public void setAge(int age){this.age=age;}public void setGrade(char grade){this.grade=grade;}public char getGrade() {return grade;}public int getAge(){return age;}public void print(){System.out.println("该员工的姓名为:"+getName());System.out.println("该员工的性别为:"+getSex());System.out.println("该员工的年龄为:"+getAge());System.out.println("该员工的工资级别为:"+getGrade());}}5、定义一个People类,它包含属性有姓名name和性别sex和年龄age,一个构造方法,用来初始化这三个属性;定义一个People类的子类Student,添加一个属性学好number,添加两个构造方法,一个有参构造方法,一个无参构造方法,他们都要调用父类的构造方法或本类的构造方法来完成对象的初始化,添加两个成员方法,一个是选课choose(),用来输出“我没有选课”,另一个是选课choose(String),用来选择由参数指定的课程。

public class People{String name;char sex;int age;public People(){="何楚伟";this.age=22;this.sex='男';}public static void main(String[]args){Student ss = new Student();ss.choose("JAVA");}}class Student extends People{int number;public Student(){super();}public Student(int number) {super();this.number = number;}public void choose(){System.out.println("我没有选课");}public void choose(String choose){System.out.println(name+"所选课程为"+choose);}}6、创建一个接口Shape,其中有抽象方法area,类Circle、Rectangle实现area方法计算其面积并返回,又有Star类实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型的方法isStar;在main方法中创建一个数组,根据随机数向其中加入Shape的不同子类对象,然后将数组元素依次取出,判断其是否为Star类,如是返回其个数,否则返回其面积。

相关文档
最新文档