您的位置:首页 > 编程语言 > Java开发

java基础第五天

2016-05-22 22:00 435 查看
1.文字阐述静态代码块的作用。
静态代码块在类加载的时候执行,而且只执行一次。

2.构造代码块与构造函数的调用顺序如何?和方法的声明位置是否有关?为什么?构造代码块的作用是什么?
(1)在main函数中创建new对象时,先 调用构造代码快,而后再是构造函数
(2)构造代码快和构造函数的调用顺序和方法的声明位置无关。
(3)构造代码块的作用:a.可以存放多个构造方法的共同代码,提升代码的重复性;b.对成员变量初始化

3.类加载时,是否一定会执行静态代码块?如何手动控制类加载?类加载时默认执行静态代码块。
手动控制类加载使用class.forName("classname"),默认加载类时,执行代码块。
4.定义类Person,Man,Woman形成继承关系class person{
}
class man extends person{
}
class woman extends person{
}

5.什么是抽象方法?什么是抽象类?抽象类是否有构造函数,是否可以重载?
(1) 抽象方法是指没有方法体的方法,用abstract修饰。
(2)含有抽象方法的类叫作抽象类,也必须用abstract修饰。
(3)抽象类可以有构造函数,而且可以被重载。

6.抽象修饰符有哪些非法组合?并给出合理的解释?
abstract + static是非法组合,static修饰能更方便地访问公共的属性,而abstract的直接访问没有任何意义,因为抽象类中的方法是在子类中实现,就算访问了也没个啥东西。
abstract + final是非法组合,final修饰以后就不能被子类继承,而abstract修饰后就是要让子类实现其抽向方法,两者组合就矛盾了。
abstract + private是非法组合,抽象类方法的目的就是要让子类来实例化,而private根本就没有继承一说,比final更加矛盾。

7.super和this作用以及用法以及注意事项?
this是指向对象自身的引用。
this(···)表示调用当前对象的带有参数的构造函数,且只能用在第一行,默认当前对象的构造函数是this()
super是指向超类(即父类)对象的方法函数。
super(···)表示调用超类的带有参数的构造函数,只能用在第一行,调用父类的默认构造函数是super()

8.定义接口1.IWhite2.IRich3.IBeanti4.定义类,实现以上三个接口.(WomenStar)5.定义土豪类(EarchRicher.marring(...))//定义包含三种属性的白富美(1)interface IWhite{ public void skinWhite(); } (2) interface IRich{ public void FamilyRich(); } (3) interface IBeauty{ public void faceBeauty(); }//定义一个【白富美】的接口用以实现以上三个借口。(4)class womanStar implements IWhite, IRich, IBeauty{ } (5)//定义土豪类(EarthRicher.marring(...)) //司机接口interface IDriver{ public abstract void drive();}
//女明星实现类---白富美中的典型class WomanStar implements IWRB{//类型 WomanStar 必须实现继承的抽象方法 //实现继承的抽象方法 public void white(){ System.out.println("I'm white"); } public void rich(){ System.out.println("I'm rich"); } public void beauti(){ System.out.println("I'm Beauti"); }}
//会开车的女明星class WomanStarDriver extends WomanStar implements IDriver{//只要会开车就可以,用接口--// 类型 WomanStarDriver 必须实现继承的抽象方法 IDriver.drive() public void drive(){ System.out.println("老司机,上车啦!!"); } }

//有钱人想征婚类class RichMan{ //成员方法,征婚对象要白富美的女人 public void marry(IWRB woman){//征婚对象时白富美的聊聊看 System.out.println("聊聊看!!!"); } //要个开车的女司机 public void driver(IDriver driver){ driver.drive();//这个已经看明白了,创建司机对象 driver,调用司机方法.drive() }}
public class MarriyDemo1 { public static void main(String[] args) { RichMan rm=new RichMan();//创建一个富商 WomanStar star=new WomanStar();//创建一个女明星 rm.marry(star);//打印出--聊聊看---女明星star是实现了IWRB接口的类的对象 WomanStarDriver m2=new WomanStarDriver(); rm.marry(m2);//找会开车的女明星聊聊看看,也是实现了IWRB接口的类的对象 }}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  接口 抽象类