JAVA实验5类和对象
Java类与对象实验报告
西安邮电大学(计算机学院)课实验报告实验名称:类与对象专业名称:计算机科学与技术班级:计科1405班学生:高宏伟学号:04141152指导教师:霞林实验日期:2016.9.29一、实验目的通过编程和上机实验理解Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP 方式进行程序设计的方法。
二、实验要求1.编写一个创建对象和使用对象的方法的程序。
2.编写一个包含类成员和示例成员的程序。
3.编写一个使用Java包的程序。
三、实验容(一)三角形、梯形和圆形的类封装✧实验要求:编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。
具体要求如下:a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。
另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。
b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。
c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。
✧程序模板:AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){this.sideA=a; //【代码1】参数a,b,c分别赋值给sideA,sideB,sideCthis.sideB=b;this.sideC=c;if((sideA+sideB)>sideC&&(sideC+sideB)>sideA&&(sideC+sideA)>sideB)//【代码2】a,b,c构成三角形的条件表达式{boo=true;//【代码3】给boo赋值。
Java实验报告继承、多态、接口和异常处理
Java实验报告继承、多态、接⼝和异常处理实验5 继承、多态、接⼝和异常处理⼀、实验⽬的1、掌握Java的类和对象的声明和使⽤⽅法;2、掌握Java的类的继承和实现⽅法;3、掌握多态性在类的继承中的运⽤;4、掌握接⼝的定义与使⽤;5、掌握基本异常的处理机制;6、熟悉try语句与catch语句的搭配使⽤;7、了解有异常处理与没有异常处理的差别;8、多重catch语句的使⽤;9、使⽤Throws声明异常和Throw抛出异常。
⼆、实验环境1、PC微机;2、DOS操作系统或 Windows 操作系统;3、Java sdk程序开发环境、eclipse集成环境。
三、实验内容1. 设计三个类,分别是学⽣类Student,本科⽣类UnderGraduate,研究⽣类Postjgraduate,其中Student类是⼀个抽象类,它包含学⽣的基本信息如姓名、所学课程、课程成绩等,⽽Undergraduate类和Postgraduate类都是Student类的⼦类,这两个类计算课程成绩等级的⽅法有所不同,如下表所⽰。
假设某班级⾥既有研究⽣⼜有本科⽣,编写程序统计出全班学⽣2. 和Mobilephone具体实现,并设计⼀个应⽤程序类来使⽤这些类。
3.要求设计⼀个GUI图形窗⼝程序,该程序让⽤户输⼊⼀个星期中的任意⼀天的数字1-7,然后输出该数字所对应的是星期⼏。
四、实验步骤实验内容⼀1.建⽴package experiment5_1,其最终⽬录结构如下:2.建⽴Student类:package experiment5_1;public abstract class Student {final static int CourseNo = 3;String name;String type;int[] courses;String courseGrade;public Student(String name) {/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html = name; courses = new int[CourseNo];courseGrade = "" ;}public abstract void calculateGrade();public String getName( ) {return name;}public String getType( ) {return type ;}public String getCourseGrade( ) {return courseGrade;}public int getCourseScore(int courseNumber) {return courses[courseNumber];}public void setName(String name) {/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html = name;}public void setType(String type) {this.type = type;}public void setCourseScore(int courseNumber, int courseScore) { //按课程索引号设置课程成绩this.courses[courseNumber] = courseScore ;}}3.建⽴外部类(1)研究⽣类Postjgraduatepackage experiment5_1;public class postgraduate extends Student {public postgraduate(String name) {super(name);type = "研究⽣";}public void calculateGrade() {// TODO Auto-generated method stubint total = 0;double average = 0;for (int i = 0; i < CourseNo; i++) {total += courses[i];};average = total / CourseNo;if (average>=90&&average<100) courseGrade = "优秀"; else if (average>=80&&average<90) courseGrade = "良好"; else if (average>=70&&average<80) courseGrade = "⼀般"; else if (average>=60&&average<70) courseGrade = "及格"; else courseGrade = "不及格";}}(2)本科⽣类UnderGraduatepackage experiment5_1;public class undergraduate extends Student {public undergraduate(String name ) {super(name);type = "本科⽣";}public void calculateGrade() {int total = 0;double average = 0;for (int i = 0; i < CourseNo; i++) {total += getCourseScore(i) ;};average = total / CourseNo;if (average>=80&&average<100) courseGrade = "优秀"; else if (average>=70&&average<80) courseGrade = "良好"; else if (average>=60&&average<70) courseGrade = "⼀般"; else if (average>=50&&average<60) courseGrade = "及格"; else courseGrade = "不及格";}}4.编写代码测试函数package experiment5_1;public class polymorphism {public static void main(String[] args) {Student[] students = new Student[5];students[0] = new undergraduate("陈建平");students[1] = new undergraduate("鲁向东");students[2] = new postgraduate("匡晓华");students[3] = new undergraduate("周丽娜");students[4] = new postgraduate("梁欣欣");for (int i=0; i<5 ;i++) {students[i].setCourseScore(0,87);students[i].setCourseScore(1,90);students[i].setCourseScore(2,78);}for (int i=0; i<5 ;i++) {students[i].calculateGrade();}System.out.println("姓名" + " 类型" +" 成绩");System.out.println("-----------------------");for (int i=0; i<5 ;i++) {System.out.println(students[i].getName( )+" "+students[i].getType( )+" "+students[i].getCourseGrade( ));}}}实验内容⼆1.建⽴package experiment5_2,其最终⽬录结构如下:2.写接⼝Soundable代码:package experiment5_2;public interface Soundable {public void increaseV olume( );public void decreaseV olume( );public void stopSound( );public void playSound( );}3.创建三个类Radio、Walkman和Mobilephone具体实现,分别添加代码:// Mobilephone类package experiment5_2;class Mobilephone implements Soundable{public void increaseV olume( ) {System.out.println("增⼤⼿机⾳量");}public void decreaseV olume( ) {System.out.println("减⼩⼿机⾳量");}public void stopSound( ) {System.out.println("关闭⼿机");}public void playSound( ) {System.out.println("⼿机发出来电铃声");}}// Walkman类package experiment5_2;class Walkman implements Soundable { public void increaseV olume( ) { System.out.println("增⼤随声听⾳量"); }public void decreaseV olume( ) { System.out.println("减⼩随声听⾳量"); }public void stopSound( ) {System.out.println("关闭随声听");}public void playSound( ) {System.out.println("随声听发出⾳乐"); }}// Radio类package experiment5_2;class Radio implements Soundable{ public void increaseV olume( ) { System.out.println("增⼤收⾳机⾳量"); }public void decreaseV olume( ) { System.out.println("减⼩收⾳机⾳量"); }public void stopSound( ) {System.out.println("关闭收⾳机");}public void playSound( ) {System.out.println("收⾳机播放⼴播"); }}4.创建people类及编写测试代码://People类package experiment5_2;class People {public void listen(Soundable s) {s.playSound( );}}//测试代码package experiment5_2;import java.util.Scanner;public class InterfaceTest {public static void main(String[] args) {int i;People sportsman = new People( );Scanner scanner = new Scanner(System.in);Soundable[] soundDevice = new Soundable[3];//往声⾳设备数组中放⼊能发声的设备soundDevice[0] = new Radio( );soundDevice[1] = new Walkman( );soundDevice[2] = new Mobilephone();System.out.println("你想听什么? 请输⼊选择:0-收⾳机1-随声听2-⼿机");i = scanner.nextInt( );//开始听声⾳sportsman.listen(soundDevice[i]);soundDevice[i].increaseV olume( );soundDevice[i].stopSound();scanner.close();}}实验内容三1.建⽴package experiment5_3,其最终⽬录结构如下package experiment5_3;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class DateTransf extends JFrame implements KeyListener{/****/private static final long serialVersionUID = 1L;private static DateTransf frm;private static JTextField txt;private static JTextField data;DateTransf() {setTitle("数字与星期转换");setLocation(700, 300);setSize(400,130);}public static void main(String[] args) {frm = new DateTransf();frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frm.setLayout(new GridLayout(2,2));txt = new JTextField(12);data = new JTextField(12);JLabel lable1 = new JLabel("输⼊数字:");JLabel lable2 = new JLabel("星期⼏:");frm.add(lable1);txt.addKeyListener(frm);frm.add(txt);frm.add(lable2);frm.add(data);frm.setVisible(true);}public void keyPressed(KeyEvent e) {if (e.getSource() == txt) {if (e.getKeyCode() == KeyEvent.VK_ENTER) // 判断按下的键是否是回车键{try {int number = Integer.parseInt(txt.getText());switch (number) {case 1:data.setText("Mon");break;case 2:data.setText("Tue");break;case 3:data.setText("Wen");break;case 4:data.setText("Thu");break;case 5:data.setText("Fri");break;case 6:data.setText("Sat");break;case 7:data.setText("Sun");break;default:JOptionPane.showMessageDialog(null, "您输⼊的数字不是1~7","⽆效⽇期",/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html RMATION_MESSAGE); break;}}catch (Exception e1) {// TODO: handle exceptionJOptionPane.showMessageDialog(null, "您输⼊的不是整数","⽆效⽇期",/doc/1bd4a299a66e58fafab069dc5022aaea998f41e2.html RMA TION_MESSAGE); }}}}public void keyReleased(KeyEvent e) {}public void keyTyped(KeyEvent e) {}}2.编译运⾏五、实验结果●实验内容⼀结果:●实验内容⼆结果:●实验内容三结果:六、实验⼩结1.这次实验的内容⽐较多,需要掌握Java的类和对象的声明和使⽤⽅法、Java的类的继承和实现⽅法、多态性在类的继承中的运⽤、接⼝的定义与使⽤、基本异常的处理机制、try语句与catch语句的搭配使⽤等等;2. 在实验过程中,重点是要区分好实例和类,灵活掌握类的调⽤。
实验5 类和对象1答案
实验5:Java类与对象一、实验目的(1)使用类来封装对象的属性和功能;(2)掌握Java类的定义。
(3)java对象的使用二、实验任务(1)按要求编写一个Java程序。
(2)按要求完善一个Java程序,编译、运行这个程序,并写出运行结果。
三、实验内容1.编写一个Java程序片断,以定义一个表示学生的类Student。
这个类的属性有“学号”、“班号”、“姓名”、“性别”、“年龄”,方法有“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”、“获得年龄”。
2.为类Student增加一个方法public String toString( ),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。
编写一个Java Application程序,创建Student类的对象,并验证新增加的功能。
class Student{long studentID;int classID;String name;String sex;int age;public Student(long studentID,int classID,String name,String sex,int age){ this.studentID=studentID;this.classID=classID;=name;this.sex=sex;this.age=age;}public long getStudentID(){return studentID;}public int getClassID(){return classID;}public String getName(){return name;}public String getSex(){return sex;}public int getAge(){return age;}public String toString(){return "学号:"+getStudentID()+"\n班号:"+getClassID()+"\n姓名:"+getName()+"\n性别:"+getSex()+"\n年龄:"+getAge();}}public class StudentDemo{public static void main(String[] args){Student s1=new Student(90221,2,"Tom","male",20);System.out.println(s1.toString());}}运行结果:学号:90221班号:2姓名:Tom性别:male年龄:202.程序填空,程序中包含以下内容:一个学生类(Student),包含:属性:学号s_No,姓名s_Name,性别s_Sex,年龄s_Age。
java实验报告——类与对象
name=n; } public void setAge(int a){
age=a; } public void setSex(boolean s){
sex=s; } public void setPhone(String p){
phone=p; } public long getId(){
return id; } public String getName(){
return name; } public int getAge(){
return age;
2
实验报告
} public boolean getSex(){
return sex; } public String getPhone(){
6)写出 Cmanage 类中的属性
由 Customer 中的属性决定,即:编号 id,姓名 name,年龄 age,性别 sex, 电话号码 phone。
7)写出 Cmanage 类中的构造方法 Cmanage();//无参构造函数
4
实验报告
8)写出 Cmanage 类中插入方法 public void insert(){ Scanner in=new Scanner(System.in); System.out.println("请输入要插入的人数:"); int n=in.nextInt(); cu=new Customer[n]; for(int i=0;i<n;i++){ cu[i]=new Customer(); System.out.println("请输入第"+(i+1)+"个要插入的顾客的信息:"); cu[i].id=in.nextLong(); cu[i].name=in.next(); cu[i].age=in.nextInt(); cu[i].sex=in.nextBoolean(); cu[i].phone=in.next(); }
java类与对象实验报告
java类与对象实验报告Java类与对象实验报告一、引言Java是一种面向对象的编程语言,类和对象是Java编程的基本概念。
在本次实验中,我们将学习和掌握Java类和对象的概念、定义和使用方法,并通过实际的编程实验来加深对这些概念的理解。
二、实验目的1. 理解Java类和对象的概念;2. 学会定义和使用Java类;3. 掌握创建和操作Java对象的方法;4. 熟悉Java类和对象的相关语法和规范。
三、实验过程1. 类的定义在Java中,类是对象的模板,用于描述对象的属性和行为。
我们首先需要定义一个类,以便创建对象。
类的定义包括类名、属性和方法。
属性即对象的特征,方法即对象的行为。
2. 对象的创建通过使用关键字"new",我们可以创建一个类的对象。
对象是类的实例化,每个对象都有自己的属性和方法。
3. 对象的属性和方法对象的属性和方法可以通过对象名加点操作符来访问。
属性可以是基本类型或其他类的对象,方法可以是对象的行为或功能。
4. 构造方法构造方法是一种特殊的方法,用于创建对象时进行初始化操作。
构造方法的名称必须与类名相同,没有返回类型,可以有参数。
5. 封装性封装性是面向对象编程的重要特性之一,它将数据和方法封装在类中,对外部隐藏内部实现细节。
通过使用访问修饰符(private, public, protected)来控制属性和方法的访问权限。
6. 继承继承是面向对象编程的另一个重要特性,它允许我们创建一个新类,并从现有类中继承属性和方法。
通过使用关键字"extends"来实现继承。
7. 多态性多态性是面向对象编程的核心概念之一,它允许我们使用一个父类类型的引用来引用子类的对象。
通过方法的重写和重载来实现多态性。
四、实验结果通过本次实验,我们成功定义了一个Java类,并创建了多个对象。
我们可以通过对象名来访问对象的属性和方法,并对其进行操作。
我们还学习了构造方法的使用,以及封装性、继承和多态性的相关概念。
Java程序设计精编教程5-8章知识点
b) 如果变量名由多个单词组成,从第 2 个单词开始的每个单词的首字母要大写。
方法
方法的定义包括两部分:方法声明和方法体。一般格式为:
方法声明部分 {
方法体的内容
}
方法声明
方法声明包括返回值类型、方法名和参数。
double getArea() { //返回值类型为 double,无参数。
…
}
方法的返回值类型可以是 Java 中的任意数据类型。如果一个方法不返回数据,返回值类型必须是 void。
2. 有一个类 Singleton,为该类设计单例模式(该类只能有一个实例,且不能在类的外部 new 对象),只能通过该类 的静态方法 getInstance()获取该类的唯一对象。在主类 Homework2 中测试单例模式的有效性。
b) 在实例方法中,不仅可以调用实例方法,也可以调用类方法。 2) 类名调用类方法
a) 在类方法中,只能调用类方法、操作类变量。 b) 也可以通过对象调用类方法。 c) 如果一个方法不需要操作实例变量就可以实现某种功能,可以考虑将其声明为类方法。(例 5-8) 5.7 方法重载与多态 Java 中有两种多态:重载(overload)和重写(override)。 方法重载(overload):一个类中可以有多个名字相同的方法,但这些方法的参数必须不同,或者参数的个数不同, 或者参数的类型不同。方法的返回值类型与重载无关。
5.8 this 关键字 this 只能出现在实例方法和构造方法(也属于实例方法)中,表示调用该方法的当前对象。 一般情况下,方法中 this.实例变量的 this 可省略、类名.类变量的类名可省略,但当局部变量与成员变量同名时,
this 或类名不能省略。 5.9 包
包是 Java 语言管理类的一种机制,类似于操作系统中的目录,使用包名可以有效区分名字相同的类。 包语句
Java实验指导书2013版
第一部份绪论 (2)本课程实验的作用与任务 (2)本课程实验的基础知识 (2)本课程实验教学项目及其教学要求 (2)第二部份基本实验指导 (4)实验一:Java基本语法 (4)实验三:Java面向对象程序设计(一) (9)实验五:Java常用类 (18)实验七:Java集合 (21)实验九:GUI图形用户界面 (26)第一部份绪论本课程实验的作用与任务使学生进一步深刻理解Java语言基本概念、语法规则及程序结构,熟练掌握Java语言程序设计的基本方法,提高利用Java在网络环境下开发、设计应用程序的能力,从而进一步培养学生的创新能力和解决实际问题的能力。
熟悉JDK工具的编程和调试环境;熟练掌握选择和循环结构的程序设计;熟练掌握面向对象的程序设计思想,包括系统类的应用和用户自定义类;充分理解类的三种的特性:封装、继承和多态,特别是通过接口和抽象类理解多态;掌握图形用户界面的设计,特别是事件处理;掌握包的使用;掌握常用的输入输出流类的应用。
最后能根据实验的要求认真完成实验报告。
本课程实验的基础知识Java的基本数据类型包括:byte,short,int,long,double,char。
Java的数组属于引用类型的数据,是将相同类型的数据按顺序组成的一种符合数据类型。
Java的运算符有算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符,特别要注意它们的优先级。
Java的控制语句有if语句、switch语句、for语句、while语句、do-while语句。
类是组成Java程序的基本要素,类有两个重要的成员:成员变量和方法。
类是创建对象的模板,类将对象的属性和功能封装为一个整体。
成员变量和类变量的区别、实例方法和类方法的区别、方法的重载、成员的访问权限等都是实验课程所依据的重要理论。
继承、多态、接口、包及内部类都是Java中非常重要的概念。
Java使用“流”来读写数据。
Java的输入输出工作是通过FileInputStream类、FileReader 类、BufferedReader类、ByteArrayInputStream类、ByteArrayOutputStream类等完成的。
JAVA实验报告
学生实验报告课程名称:面向对象程序语言(Java)年级:专业:学号:姓名:指导教师:实验地点:学年至学年度第学期1.目录实验一初识Java——“一个简单的应用程序”实验二基本数据类型与数组——“输出希腊字母表”实验三分支与循环语句——“猜数字游戏”实验四类与对象——“机动车”实验五类与对象——“家中的电视”实验六类与对象——“共饮同井水”实验七类与对象——“求方程的根”实验八子类与继承——“中国人、北京人和美国人”实验九子类与继承——“银行计算利息”实验十子类与继承——“公司支出的总薪水”实验十一接口与实现——“评价成绩”实验十二内部类与异常类——“检查危险品”实验十三常用实用类——“检索简历”实验十四组件及时间处理——“计算三角形的面积”实验十五实验十六实验(一)初识Java——“一个简单的应用程序”实验时间:2017年02月21日实验目的本实验的目的是让学生掌握开发Java应用程序的三个步骤:编写源文件、编译源文件和运行应用程序实验要求编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,欢迎学习Java”和“We are students”。
实验内容public class Hello {public static void main (String args[ ]) {System.out.println("你好,很高兴学习Java"); //命令行窗口输出"你好,很高兴学习Java"A a=new A();a.fA();}}class A {void fA() {System.out.println("We are students"); //命令行窗口输出"We are students"}}实验结果分析通过本次实验,在老师的指导下我学会了基本的JAVA编译原理,能够自行改变环境变量,能够成功编译出一个简单的应用程序,而且通过实验后的练习知道了一些基础的错误在JAVA中出现时编译器的提示信息是怎样的。
java实验报告类和对象实验报告
课程名称
面向对象程序设计
实验名称
实验三、类和对象
日期
2018/4/9
学生学号
姓名
班级
实验目的:
1.掌握面向对象编程语言中的类和对象的使用方法。
2.理解类的封装性。
实验条件:
电脑一台、能上网查阅资料。
实验内容与步骤:
要求:
设计和实现一个学生类,满足以下要求:
1、学生具有学号、姓名、性别、年龄和专业等属性;
super();
this.sname=sname;
this.snum=snum;
this.sex=sex;
}
publicenumSEXENM{
Male,Female
}
}
packagezhy.shiyan3;
importzhy.shiyan3.Student.SEXENM;
publicclassDemo {
}
publicString getSname() {
returnsname;
}
publicString getSnum() {
returnsnum;
}
publicSEXENM getSex() {
returnsex;
}
publicStudent(Stringsname,Stringsnum,SEXENMsex) {
publicstaticvoidmain(String[]args) {
Studentstudent=null;
student=newStudent("翟海洋","1525",SEXENM.Male);
student.setAge(22);
java面向对象 实验五 类和对象编和—构造方法使用
publicString getName() {
returnname;
}
publicvoidsetName(String name) {
= name;
}
publicintgetHealth() {
returnhealth;
}
publicvoidsetHealth(inthealth) {
a1=newBlackPrinter();
a1.print("花瓣");
}
}
实验结果:
二.
根据实验要求编写程序如下:
classPet {
privateStringname="";
privateinthealth= 100;
privateintlove= 20;
publicvoidprint() {
System.out.print("我的名字是:"+name+"。健康值是:"+health+"。亲密度是:"+love);
}
}
classMaster {
privateStringname;
privateintmoney;
Master(String name,intmoney) {
= name;
this.money= money;
}
publicvoidfeed(Pet pet) {
pet.eat();
}
tom.feed(b1);
a1.print();
b1.print();
}
}
实验结果的彩色打印:
打印的是彩色文字花瓣
java 实验5 接口多态 实验报告
实验五接口、多态与内部类实验目标:1、理解接口、塑型、多态的概念并能熟练应用;2、熟练掌握接口的定义和使用;3、深刻理解构造方法的调用顺序,理解编写时需要注意的问题;4、了解并学会使用内部类实验任务:1、继承时的多态:目测给出下面代码的执行输出结果,并简单解释每一行输出的原因。
答:首先,该程序的主函数是Vehicle v=new Vehicle();即先声明并实例化一个汽车对象,而v.test();则是调用汽车的测试方法;而test方法里,Vehicle vc=new Car();是将上面的汽车指向了一个具体的小汽车对象;Bus vb=new Bus();将公共汽车指向了一个具体的公共汽车对象;drive();调用汽车的驾驶方法;vc.drive();调用小汽车的驾驶方法;vb.drive();调用公共汽车的驾驶方法;而vc.brake();vb.brake();则是直接调用汽车的刹车方法。
因而运行结果如下:A new bus.Vehicle is drivenCar is drivenBus is drivenVehicle is brakedVehicle is braked2.针对下面的简单的类图,从面向对象的角度,将Instrument定义成接口,应怎样实现。
编写能完成如图功能的程序,并再编写一个简单的应用程序进行多态性测试。
(参考例子5-9;实验4该题是要求用抽象类来实现,在此要求用接口实现,还要进行多态性测试)说明:Instrument表示乐器、Wind表示管乐器、Percussion敲击乐器、Stringed表示弦乐器、Woodwind表示木管乐器、Brass表示铜管乐器。
要求:(1)Instrument为接口,Wind为抽象类,其他为普通类。
这里测试的目的是:我们知道当一个普通类实现一个接口时,必须实现该接口的全部方法,但当这个类是抽象类时,我们还需要实现该接口全部方法吗?如果不需要实现?那么是否直接不理这个方法就一,还是要将这个方法在自己类内部再标记一次为抽象方法。
java类和对象实验
}
public void setY(int newY) {
y = newY;
}
public static void main(String[] args) {
System.out.println("静态变量x="+StaticDemo.getX());
//System.out.println("实例变量y="+StaticDemo.getY()); //非法,编译时将出错
c2.setRadius(5);
System.out.println("圆的面积是:"+c2.area());
System.out.println("圆的周长是:"+c2.circumference());
运行结果:
圆的面积是:3.14
圆的周长是:6.28
圆的面积是:78.5
圆的周长是:31.400000000000002
System.out.println("c1引用的牌是:"+c1+"\tc2引用的牌是:"+c2);
System.out.println("第11张牌是:"+cards[10]+"\t第13张牌是:"+cards[12]);
运行结果:
2.在主方法中用创建一个不指定半径的Circle类的实例myCircle2,输出它的周长和面积,然后利用修改半径的方法设置它的半径为5,再次输出它的周长和面积。
程序:
Circle c2=newCircle();
System.out.println("圆的面积是:"+c2.area());
Java编程基础及应用(第2版)教学课件第5章 类和对象
{ 程序语句! 〃定义成员方法 [return表达式];
} }
7
§5.1.2 类的定义
说明: (1) class关键字,用于定义类。“class类名”是类的声明 部分, 类名必须是合法的Java标识符,通常第一个字母大写 ,能体现类的功能和作用。 (2 )类的修饰字有:[public] > [abstract | final] 、缺省方式 为 friendly。其中,abstract类不能直接产生属于这个类的对 象;final类不能被其他任何类所继承;public类不但可以被同 一程序包中的其他类使用,别的程序包中的类也可以使用; friendly(缺省)类只能被本包中的其他类使用。
一个对象 就要为对象的各个成员变量分配存 储空间,可以通过 引用对象的成员来使用对 象。 -对象数据成员的引用方式如下:
-对象成员方法的引用方式如下:
22
§5.1.3 对象的创建、使用及清除
例5.3定义DogTestl类,创建该类对象dog,使用该对象 并输
岀相应信息。
程序运行结果: dog阿黄的年龄:3,毛发的颜色:黄色 狗在汪汪叫…
(4) 方法不能嵌套,即不能在方法中再声明其他方法。 (5) 同一个类中的方法可以访问该类的成员变量。 (6) 一个类的方法只能访问自己的局部变量。
17
§5.1.2 类的定义
-例5.1定义Dog类,并设置其属性和方法。
在上面的程序屮,Dog类定义了name、age和color三 个属性,分别表示狗的姓名、年龄和毛发颜色,然后 定义了一个bark()方法,表明狗有汪汪叫的能力。
返回值的 类型和访问限制;方法体由括号内的声明部分和语 句部分组成,描述方法的功能。
java类和对象简单的例子代码
Java类和对象简单的例子代码1. 简介在Java编程中,类和对象是非常重要的概念。
类是对象的模板,可以用来创建对象。
对象是类的实例,它可以拥有自己的属性和行为。
通过类和对象的使用,我们可以实现面向对象编程的思想,使我们的程序更加模块化和易于维护。
2. 创建类下面是一个简单的Java类的例子:```javapublic class Car {String brand;String color;int maxSpeed;void displayInfo() {System.out.println("Brand: " + brand);System.out.println("Color: " + color);System.out.println("Max Speed: " + maxSpeed);}}```在这个例子中,我们创建了一个名为Car的类。
该类有三个属性:brand、color和maxSpeed,并且有一个方法displayInfo用来展示车辆的信息。
3. 创建对象要创建Car类的对象,我们可以使用以下代码:```javaCar myCar = new Car();```这行代码创建了一个名为myCar的Car对象。
我们使用关键字new 来实例化Car类,并且将该实例赋值给myCar变量。
4. 访问对象的属性一旦我们创建了Car对象,我们就可以访问它的属性并为其赋值。
例如:```javamyCar.brand = "Toyota";myCar.color = "Red";myCar.maxSpeed = 180;```这些代码展示了如何为myCar对象的属性赋值。
我们可以使用点号操作符来访问对象的属性。
5. 调用对象的方法除了访问对象的属性,我们还可以调用对象的方法。
我们可以使用以下代码来展示myCar对象的信息:```javamyCar.displayInfo();```这行代码会调用myCar对象的displayInfo方法,从而展示该车辆的信息。
Java实验五
Java实验五组件与事件处理【目的】①学习处理ActionEvent事件;②学习处理ItemEvent事件和paint方法;③学习使用布局类。
【内容】1.算术测试。
✧实验要求:编写一个算书测试小软件,用来训练小学生的算术能力。
程序由3个类组成,其中Teacher类对象负责给出算术题目,并判断回答者的答案是否正确;ComputerFrame类对象负责为算术题目提供视图,比如用户可以通过ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MainClass是软件的主类。
✧程序:Teacher.javapublic class Teacher{int numberOne, numberTwo;String operator = "";boolean right;public int giveNumberOne(int n){numberOne = (int)(Math.random() * n) + 1;return numberOne;}public int giveNumberTwo(int n){numberTwo = (int)(Math.random() * n) + 1;return numberTwo;}public String giveOperator(){double d = Math.random();if (d >= 0.5)operator = "+";elseoperator = "-";return operator;}public boolean getRight(int answer){if (operator.equals("+")){if (answer == numberOne + numberTwo)right = true;elseright = false;}else if (operator.equals("-")){if (answer == numberOne - numberTwo)right = true;elseright = false;}return right;}}ComputerFrame.javaimport java.awt.*;import java.awt.event.*;public class ComputerFrame extends Frame implements ActionListener {TextField textOne, textTwo, textResult;Button getProblem, giveAnwser;Label operatorLabel, message;Teacher teacher;ComputerFrame(String s){super(s);teacher = new Teacher();setLayout(new FlowLayout());textOne = new TextField(10); //创建textOne,其可见字符长是textTwo = new TextField(10); //创建textTwo,其可见字符长是textResult = new TextField(10); //创建textResult,其可见字符长是operatorLabel = new Label("+");message = new Label("你还没有回答呢");getProblem = new Button("获取题目");giveAnwser = new Button("确认答案");add(getProblem);add(textOne);add(operatorLabel);add(textTwo);add(new Label("="));add(textResult);add(giveAnwser);add(message);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false);getProblem.addActionListener(this);//将当前窗口注册为getProblem的ActionEvent事件监视器giveAnwser.addActionListener(this);//将当前窗口注册为giveAnwser的ActionEvent事件监视器textResult.addActionListener(this);//将当前窗口注册为textResult的ActionEvent事件监视器setBounds(100, 100, 450, 100);setVisible(true);validate();addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}public void actionPerformed(ActionEvent e){if (e.getSource() == getProblem) //判断事件源是否是getProblem{int number1 = teacher.giveNumberOne(100);int number2 = teacher.giveNumberTwo(100);String operator = teacher.giveOperator();textOne.setText("" + number1);textTwo.setText("" + number2);operatorLabel.setText(operator);message.setText("请回答");textResult.setText(null);}if (e.getSource() == giveAnwser) //判断事件源是否是giveAnwser{String answer = textResult.getText();try{int result = Integer.parseInt(answer);if (teacher.getRight(result) == true){message.setText("你回答正确");}else{message.setText("你回答错误");}}catch (NumberFormatException ex){message.setText("请输入数字字符");}}textResult.requestFocus();validate();}}MainClass.javapublic class MainClass{public static void main(String args[]){ComputerFrame frame;frame = new ComputerFrame("算术测试");//创建窗口,其标题为:算术测试}}✧实验后的练习:1. 给上述程序增加测试乘、除的功能。
java实验报告——对象和类
成绩:面向对象原理与Java实践课程实验报告实验1:对象和类姓名 ____班级 ____学号 ____实验地点 ____实验时间 ____指导教师 ____面向对象原理与Java实践课程实验报告实验1:对象和类一、实验目的:●掌握类的定义及应用方法●掌握对象的创建方法,了解实例变量、实例方法和静态字段的特性●体会Java在类和对象的设计中体现的面向对象的思想二、实验要求:●具备Java基础知识(教材第1、2章内容)●掌握Java中对象和类的基本概念和应用方法(教材第3章内容)●设计类时注意保证类的封装性●编写程序完成以下实验内容并上交实验报告(包括电子文档与纸质文档)三、实验内容:设计并实现一个“广石化院电信学院学生通信录”系统。
系统采用字符界面,在出现的主界面中按提示输入相应字符以选择“增加”、“删除”、“修改”、“查找”等功能进行操作(其中“查找”功能除能够查找某个学生的信息之外,还能够显示所有学生的信息)。
记录的存储可采用数组或链表的方式。
四、设计思路:为了实现该系统,首先要需要两个类;一个类为主界面服务,用于接收用户输入信息以及做出相关反应;一个类为学生信息服务,定义学生通讯录信息的各个字段,以及操作字段的各个方法,考虑到部分字段的属性问题,所以将操作方法都写在学生类中,不再另外放置在其他类中。
学生信息将会采用学生类的对象数组来储存。
五、程序源代码:下面是ZhuJieMian 主界面类package pkg_TXL;import java.util.Scanner;public class ZhuJieMian{/**** 该类为通讯录系统的主界面提供主要功能显示,以及负责主菜单与子菜单的正常跳转*/public static void main(String[] args){// TODO Auto-generated method stub//XueShengXinXi[] Stu=ChuShiHua(); //初始化系统数据XueShengXinXi[] Stu=new XueShengXinXi[100];Stu[0]=new XueShengXinXi("专业", "班级", "姓名", "性别", "电话", "家庭住址");Stu[1]=new XueShengXinXi("自动化", "自动化10-1", "张三", "男", "63256", "fnhjfdhsdbh");Stu[2]=new XueShengXinXi("自动化", "自动化10-2", "李四", "女", "653256", "nfhggdfddhsdbh");Stu[3]=new XueShengXinXi("电子", "电子10-1", "王五", "男", "6156", "fnhvjbh");Stu[4]=new XueShengXinXi("电子", "电子10-2", "小红", "女", "63956", "asdfnhjbh");Stu[5]=new XueShengXinXi("网络", "网络10-1", "小明", "男", "656", "nfgdgfnhjbh");Stu[6]=new XueShengXinXi("网络", "网络10-2", "小芳", "女", "62215", "nfgdmmmdfhbdsh");Stu[7]=new XueShengXinXi("计算机", "计算机10-1", "黄龙", "男", "65584", "bbbdddfnhjbh");Stu[8]=new XueShengXinXi("计算机", "计算机10-2", "陈玲", "女", "666114", "mjgfddddfnhjbh");Stu[9]=new XueShengXinXi("测控", "测控10-1", "赵小斌", "男", "644814", "fthnrehbkjhjbh");Stu[10]=new XueShengXinXi("测控", "测控10-2", "钱颖", "女", "63641", "dbfsvnnhjbh");Stu[11]=new XueShengXinXi("电信", "电信10-1", "孙武", "男", "6321514", "mmhmgvvdfnhjbh");Stu[12]=new XueShengXinXi("电信", "电信10-2", "李雨", "女", "6314", "43ghffvvdfnhjbh");for(int x=13;x<Stu.length;x++){Stu[x]=new XueShengXinXi();}System.out.println("欢迎使用广石化电信学院通讯录系统!");ZhuJieMian: for(int exit=0;exit==0;)//exit为退出主菜单的指示变量,0为不退出,非0为退出{System.out.println();System.out.println("************************************");System.out.println("****************主菜单****************");System.out.print(" 1。
Java程序设计实验指导书(答案)
第Ⅰ部分:实验指导实验1:Java开发环境J2SE一、实验目的(1)学习从网络上下载并安装J2SE开发工具。
(2)学习编写简单的Java Application程序.(3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。
二、实验任务从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。
三、实验内容1.安装J2SE开发工具Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从上进行下载。
安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。
教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。
2.安装J2SE源代码编辑工具Edit Plus教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java 原程序的常用命令的用法。
3.编写并编译、运行一个Java Application程序。
创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。
public class HelloWorldApp{public static void main(String[] args){System.out.println("老师,你好!");}}4.编译并运行下面的Java Application程序,写出运行结果。
1:public class MyClass {2:private int day;3:private int month;4:private int year;5:public MyClass() {6:day = 1;7:month = 1;8:year = 1900;9:}10:public MyClass(int d,int m,int y) {11:day = d;12:month = m;13:year = y;14:}15:public void display(){16:System.out.println(day + "-" + month + "-" + year);17:}18:public static void main(String args[ ]) {19:MyClass m1 = new MyClass();20:MyClass m2 = new MyClass(25,12,2001);21:m1.display();22:m2.display();23:}24:}运行结果:1-1-190025-12-2001实验2:Java基本数据类型一、实验目的(1)掌握javadoc文档化工具的使用方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
p3d1,p3d2,打印出他们之间的距离。 三、实验步骤:
1、参考代码。 public class TestInstanceAndClassVariable { public static void main(String[] args) { Circle circle1 = new Circle(); System.out.println("Before creating circle2"); System.out.print("circle1 is : "); printCircle(circle1);
Circle circle2 = new Circle(5); circle1.setRadius(9); System.out.println("\nAfter creating circle2 and modifying " +
"circle1's radius to 9"); System.out.print("circle1 is : "); printCircle(circle1); System.out.print("cile(circle2); } public static void printCircle(Circle c) { System.out.println("radius (" + c.getRadius() +
") and number of Circle objects (" + c.getNumOfObjects() + ")"); } }
class Circle {
private double radius; private static int numOfObjects = 0; public Circle() {
radius = 1.0; numOfObjects++; } public Circle(double r) { radius = r; numOfObjects++; } public double getRadius()
{ return radius;
} public void setRadius(double newRadius) {
radius = newRadius; } public static int getNumOfObjects() {
return numOfObjects; } public double findArea() {
return radius*radius*Math.PI; } }
四、本次实验难点: 类变量、类方法的使用是本次实验的难点,同学们要重点理解。
3、选作题目 (1) 分别编写两个类 Point2D,Point3D 来表示二维空间和三维空间的 点,使之满足下列要求: (2) Point2D 有两个整型成员变量 x, y (分别为二维空间的 X,Y 方向坐 标),Point2D 的构造方法要实现对其成员变量 x, y 的初始化。 (3) Point2D 有一个 void 型成员方法 offset(int a, int b),它可以实 现 Point2D 的平移。 (4) Point3D 是 Point2D 的直接子类,它有有三个整型成员变量 x,y,z (分 别为三维空间的 X,Y,Z 方向坐标),Point3D 有两个构造方法: Point3D(int x,int y,int z)和 Point3D(Point2D p,int z),两者均可实现 对 Point3D 的成员变量 x, y,z 的初始化。 (5) Point3D 有一个 void 型成员方法 offset(int a, int b,int c),该 方法可 以实现 Point3D 的平移。 (6) 在 Point3D 中的主函数 main()中实例化两个 Point2D 的对象 p2d1, p2d2,打印出它们之间的距离,再实例化两个 Point3D 的对象
实验 5
类和对象
一、实验目的: 1、学习定义类和使用类创建对象。 2、掌握对象变量和普通变量的区别,学习掌握使用对象调用其成员的方法。 3、学习掌握类的构造方法。 4、学习掌握给方法传递对象。 5、学习掌握类变量、类方法。 6、学习掌握关键字 this。
二、实验任务: 1、学习类的定义、使用类创建对象、通过对象调用其成员、类的构造方法的 作用、如何给方法传递对象、掌握静态变量、静态方法的用法。程序要求: (1) 首先创建 Circle 类表示平面上的圆,要求该类具备构造方法,以 初始化表示半径的私有数据成员 radius;具备求圆面积的方法; 还要具备一个静态数据成员 numOfObjects,用来统计程序运行过 程中创建圆对象的个数。 (2) 创建一个静态方法 public static void printCircle(Circle c),功能是输 出参数圆对象 c 的相关信息,包括半径和面积的值。(不是 Circle 的成员方法) (3) 程序运行中创建 2 个以上的圆对象,分别输出相关信息,并统计 输出对象的数目。 2、程序要求: 创建时间类 MyDate,包括私有函数成员 year,month,day,实现: (1)每个变量成员的修改器和访问器方法。 (2)无参数构造方法,有参数构造方法。 (3)输出成员变量 year,month,day 的信息函数 display。