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

java桌面 第三章包 接口 抽象类

2008-12-26 20:26 232 查看
package org.lgc;

public class 滑翔机 extends 飞机 {

    public 滑翔机(){

        super("滑翔机");

    }

    

    public void 起飞(){

        System.out.println(this.type+"在跑道上起飞");

    }

    

    public void 降落(){

        System.out.println(this.type+"在跑道上降落");

    }

    

    

}

package org.lgc;

public class 直升机 extends 飞机{

    public 直升机(){

        super("直升机");

    }

    public void 起飞() {

        System.out.println(this.type+"垂直起飞");

    }

    public void 降落() {

        System.out.println(this.type+"垂直降落");

    }

    

    

}

package org.lgc;

public class Test {

    public static void main(String[] args) {

        飞机 p = new 滑翔机();

        p.起飞();

        p.降落();

        p.载人();

        p.载物();

        System.out.println("******************");

        p = new 直升机();

        p.起飞();

        p.降落();

        p.载人();

        p.载物();

    }

}

package org.lgc;

public interface 飞机功能 {

    //所有方法前面默认都有public abstract

    void 载人();

    void 载物();

    void 起飞();

    void 降落();

}

 

package org.lgc;

public abstract class 飞机 implements 飞机功能 {

    String type;//飞机类型

    

    public 飞机(String type){

        this.type = type;

    }

    

    public void 载人(){

        System.out.println(this.type+"可以载人!");

        

    }

    

    public void 载物(){

        System.out.println(this.type+"可以载物!");

    }

    

}

第三章
一.static关键字
       1.修饰方法。
a)被static修饰的方法称之为静态方法。它是属于类的,通过类名来访问,不建议使用对象来访问。
b)静态的方法不能访问非静态的属性和方法。但非静态的方法可以访问静态的成员。
2.修饰属性。
a)通过类名来访问。不建议使用对象访问。
b)静态的属性是属于类的。
c)静态的属性一出来就有默认值了。而非静态的属性是在创建对象时才有默认值的.
       3.修饰类
a)static可以修饰内部类.
二.final关键字
       1.修饰属性
              a)被final修饰的属性为常量.不能二次赋值.
              b)规范:一般常都会声明为public static final的.名字全部使用大写字母<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

       2. 修饰方法
              a)可以重载.不能重写

       3. 修饰类(最终类)
              a)被final修饰的类不能被继承.典型的类:String,Math
三.打包package和导包import
       1.打包package:解决类重命的问题.是一个习惯.必须写在第一句

       包命名:网站www.xdsvse.com,包命名是一个反的:com.xdsvse.org.lgc.org.hsl
       2.导包import:导入其它位置的类到当前.系统会默认的帮我们导入java.lang包
       可以写多句,写在类外

       编写java文件的顺序:package -> import ->class

四.访问修饰符
      
关键字
本类
同包子类
同包它类
包外子类
包外它类
private私有



默认

protected受保护
public 公有
 注意:只有默认和public能够修饰类。被public修饰的类必须和文件同名
 
面向对象回顾:
1.       封装
a)         将属性和方法写在类中
b)        属性应该都是私有(private),是通过公有(public)的get和set方法来访问和赋值。
2.       继承
a)         Java中的继承:单继承。
b)        继承时子类会继承父类所有的属性和方法
c)         私有的属性和方法会被继承,但不能使用
d)        构造方法不能被继承
e)         子类的构造方法中默认都会有一句super( )
3.       多态
a)         重载:同一个类中有多个方法名字一样,但参数的个数或参数的数据类型不一致。
b)        重写:子类中有方法和父类的方法一样。
c)         父类的引用存放子类的对象:
                                      i.              能访问父类:所有属性,没有被重写的方法
                                    ii.              能访问子类:只能访问重写父类的方法。
一.抽象类(abstract)
a)         修饰类:抽象类可以写得跟一般的类一模一样。
b)        修饰方法:抽象方法,不能有方法体的。(直接将一对{ }大括号换成;分号)
c)         抽象类中可以没有抽象方法,但抽象方法必须写在抽象类中。
d)        抽象类不能被实例化。但可以写构造方法。
e)         子类必须重写抽象类中的所有抽象方法。(注意:重写时访问修饰必须>=父类方法的访问修饰)。
反之:如果一个类继承了抽象类,而又没有重写抽象方法,且程序正确。那么这个类一定是抽象类。
f)         应用:如果多个类有相同的方法且做一样的事情,也有相同的方法,但做的事情不一样,此时我们将写一个抽象类,把做一样事情的方法写在抽象类中,把做不一样事情的方法写成抽象方法。
二.接口(interface):为了弥补Java单继承的不足。
a)         类不能继承接口,而是实现接口。使用implements关键字
b)        类可以实现多个接口
c)         接口中所有的属性都是public static final
d)        接口中所有的方法都是public abstract
e)         一个类实现了接口,必须重写接口中的所有方法。
反之:如果一个类实现了接口,而又没有重写抽象方法,且程序正确。那么这个类一定是抽象类。
 

f)         应用:将多个类都有的方法全部写在接口中。
 

接口和抽象类结合应用:
1.       将多个类中都有的方法全部写到接口中
2.       将多个类中相同的方法写到抽象类中,由抽象类来实现接口。
3.       由子类来继承抽象类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息