java的定义与对象创建实验报告
实验名称 类的定义与对象的创建
实验类型 验证性 实验学时 2
实验⽬的
1.掌握类的声明。
2.掌握对象的创建。
3.掌握⽅法的定义和调⽤。
4.掌握构造函数的使⽤。
实验设备
Windows计算机、JDK开发包、eclipse软件开发⼯具。
⼀、实验原理(要求、任务等)
1、类的概念
把众多的事物归纳、划分成⼀些类是⼈类在认识客观世界时经常采⽤的思维⽅法。分类的原则是抽象。类是具有相同属性和服务的⼀组对象的集合,它为属于该类的所有对象提供了统⼀的抽象描述,其内部包括属性和服务两个主要部分。
在Java语⾔中,完成对功能操作封装的单位称为类。类是有共同特性(属性)和操作(⾏为)定义的实体,类是⽤于组合各个对象所共有操作和属性的⼀种机制。可以根据类具有的属性和⽅法,赋予类不同的数值,来创建不同的对象实例。
卡宴男2、构造函数
构造⽅法是类中⼀种特殊的⽅法,⽤来初始化该类的⼀个新的对象。Java中的每个类都有构造⽅法。如果没有指定构造⽅法,则系统会调⽤默认的构造⽅法。默认的构造⽅法不带有任何⼀个参数。构造⽅法具有和类名相同的名称,⽽且不返回任何数据类型,在构造⽅法的实现中,也可以进⾏⽅法重载。
⼆、实验内容和步骤
设计汽车类,使⽤汽车类可创建不同汽车对象并进⾏驾驶操作。
1、创建Java项⽬CarApp。
2、汽车类中定义汽车品牌、车牌号、颜⾊、档位等属性。
3、实现汽车类中的构造函数,汽车驾驶以及换挡等⽅法。
4、在主类中创建具体的汽车对象,并进⾏相应的操作。
如创建车牌号为"666666"的蓝⾊汽车,并进⾏驾驶和换挡的调⽤过程如下:福州大通
Car MyCar = new Car(“BMW”, 666666, “Blue”);
System.out.Num());
System.out.Color());
MyCar.drive(“go ahead”);
MyCar.drive(“turn left”);
MyCar.drive(“go ahead”, 2);
MyCar.drive(“go ahead”, 5);
MyCar.drive(“brake”, 0);
三、实验结果与分析
详细代码:
package Test;
class Car{
private final String brand;
private int num;
private String color;
private int speedLevel =0;
public Car(){
brand ="";
num =0;
color ="";
}
public Car(String brand){
this.brand = brand;
}
public Car(String brand,int num, String color){
this.brand = brand;
this.num = num;
}
public String getBrand(){
return brand;
}
public int getNum(){
return num;
}
public void setNum(int num){
this.num = num;
}
public String getColor(){
return color;
}
public void setColor(String color){
}
public void drive(String direction){
if(startEngine()){
System.out.println("⾃动挡汽车: "+ direction);
}
}
public void drive(String direction,int speedLevel){
汽车座套品牌排行
if(startEngine()){
if(this.speedLevel > speedLevel)
System.out.println("⼿动挡汽车:减速 "+ direction +" "+speedLevel+"档"); if(this.speedLevel <= speedLevel)
System.out.println("⼿动挡汽车:加速 "+ direction +" "+speedLevel+"档"); this.speedLevel=speedLevel;
}
}
private boolean startEngine(){
System.out.print("引擎⼯作");
System.out.print("齿轮转动");
System.out.println("轮胎转动");
return true;
}
黑龙江二手车public static void main(String[] args){
Car MyCar =new Car("BMW",666666,"Blue");
奔驰ml350
System.out.Num());
System.out.Color());
MyCar.drive("go ahead");
MyCar.drive("turn left");
MyCar.drive("go ahead",2);
MyCar.drive("go ahead",5);
MyCar.drive("brake",0);
}
}
输出结果如下图所⽰:
代码分析:
从主函数开始。创建了⼀个对象,左边进栈,右边进堆。在堆中分配了⼀块内存,成员属性分布在这⼀块堆内存中。
然后调⽤了public Car(String brand, int num, String color)构造⽅法,将brand赋值为BMW、num赋值为666666、color赋值为Blue。
然后使⽤了getNum⽅法获得了num和color的值并输出到屏幕上。
然后调⽤⾃动挡汽车⽅法,在这个⽅法中会有⼀个if语句,这个语句会直接输出“引擎⼯作齿轮转动轮胎转动”,然后输出“⾃动挡汽车:go ahead”。
然后下⼀⾏代码和这个是⼀致的,不过是输出“⾃动档汽车:turn left”。
接下来就是调⽤⼿动挡汽车这个⽅法,这个⽅法在最开始会输出“引擎⼯作齿轮转动轮胎转动”然后通过判断现在的速度speedlevel和之前的速度this.speedlevel来判断的⼤⼩关系来输出加速或者减速,每次⽐较过之后都会将这次的speedlevel赋值给成员变量
this.speedlevel。
后⾯三个代码原理是⼀样的。就拿第⼀个来说,调⽤了⼿动挡汽车这个⽅法,传过来direction和speedlevel的值。⼀开始会输出“引擎⼯作齿轮转动轮胎转动”,然后因为0<=2,所以会输出“⼿动挡汽车:加速 go ahead 2档”,然后成员变量speedlevel的值会被赋值为2。最后,从这个⾃动挡汽车和⼿挡档汽车可以看出⽅法重载的作⽤。⼿动挡汽车和⾃动挡汽车都是⼀种驾驶的⾏为,但是⼿动挡汽车和⾃动挡汽车的使⽤⽅法不同,所需的参数也不同。
四、总结与⼼得体会
思考题
1、封装类的基本原理。
将私有数据成员私有化(为了保护它),但是⼀定要对外提供⼀个公共访问⽅法。这就是封装。
2、⽅法的定义与重载的作⽤
为了体现对象的⾏为。由于有些⾏为⼀样的,但是传递的形参和内容可能会略有不⽤,所以要有重载。就像这次实验中得⼿动挡汽车和⾃动挡汽车⼀样。
总结
新款红旗hs5实车曝光在这次实验中,我学到了如何声明⼀个类,掌握了对象的创建和⽅法的定义与调⽤。⽽且更加深⼊的了解了构造⽅法和重载⽅法的作⽤和使⽤⽅法。还有就是在创建类之后系统会⾃动创建⼀个⽆参的构造函数,但如果我们写了其他的构造函数之后这个⽆参构造⽅法就没有了,需要⾃⼰添加⼀个。⽽且也学习到了⼀些快捷键,如:alt+shift+s就可以快速的⽣成构造⽅法、set⽅法和get⽅法等等。
五、教师评语