JAVA实验报告
实验内容:
1.自定义JAVA类
自定义JAVA类,类中可以写成员属性、成员方法、构造函数,前面可以加上public、private、producted
成员属性一般定义为private,在类内部可访问,而在类外部不可访问
成员方法一般定义为public,在类的内部和外部均可访问
public class java extends fu{
int num = 20;
public void method(){
System.out.println(num);
}
public static void main(String[] args) {
java j1 = new java();
j1.method();
}
}
2.类继承的方法
java中有三种类型的继承:单一、多级和分层,在Java中不支持多重继承
图1
在做实验中遇到了这样的问题:如果继承中,成员变量重名,那么会发生什么?
步骤:1.编写代码进行实践
首先我编写了一个父类,里面有一个变量num和父类方法
public class fu {
int num = 10;
public void method(){
System.out.println(num);
}
}
然后定义了一个子类,里面有相同的变量和方法,
public class java extends fu{
int num = 20;
public void method(){
System.out.println(num);
}
public static void main(String[] args) {
java j1 = new java();
j1.method();
}
}
2.进行总结分析:
我发现子类同名方法会覆盖父类的方法,即方法覆盖,而相同名字的变量并不会覆盖,需要通过super关键字来访问。
3.接口实现多态
java接口中只有抽象方法而不是方法体,接口用于在java中实现抽象和多重继承,它不能被实例化,也就是不能new出来。接口中的数据成员前面默认加public static final,方法之前默认加public abstract
在实验中我用接口实现了多态,结构为图2的结构
图2
步骤:1.首先定义了一个接口Car类,里面有汽车名称数据成员和获得汽车售价的方法
2.定义一个BM类去实现(implements)这个Car类,那么BM类中的方法是它独有的
3.又定义一个QQ类去实现Car类。
4.编写main中的代码
Car car1 = new BM();
Car car2 = new QQ();
car1.getPrice();
car2.getPrice();
5.分析总结:在main中car1和car2都去调用getPrice()这个同名方法时,它会根据它被定义时右边的对象类型来选择不同的方法,一个是BM内的,一个是QQ内的,从而实现了多态。
4.static
java中的 static
关键字可以用在变量,方法,块和嵌套类中
在类中把一个变量声明为static,那么这个变量就会成为这个类的所创建的对象的共同属性。
用static修饰代码块,这个代码块会在类第一次装载的时候执行