安卓培训(java篇)第4天—面向对象

  1. 类的概念:类是一种抽象的概念,它为“对象服务”,类与对象相互依存;

    对象的概念:真正做事的“人”;

    封装的概念:显性和隐性 指的是方法或常量(字段);

  2. 如何创建对象:

    语法:类名 对象名(变量名)=new 类名(是否带参);

    意义:调用本类里面的成员变量和方法;

    注意事项:空指针异常;

  3. 构造方法:

    语法:权限+类名(是否带参){}//方法名必须跟类名一致;

    何时调用:创建对象时调用该方法;

    注意事项:任何一个类,都默认带有一个无参的构造方法,除非重写一个新的构造方法将其覆盖。

  4. set()、get()方法:

    备注:必须先有成员变量,使用这两个方法才有意义;

  5. 方法的重载:

    语法:权限+(static)+返回值类型+方法名(是否带参){}

    前提:必须在同一个类中;

    作用:可以减少定义方法名的烦恼;

    要求:有无返回值的方法,在同一个类中属于同一个方法;

    方法的重载只跟形参的个数和类型有关,与其他无关;

    构造方法也存在重载;

  6. this关键字:

    三大特点:

    可以表示类的属性;

    可以使用this调用本类的构造方法;

    可以表示当前类的对象;

    注意事项:不能放在static方法中;

  7. static关键字:

    特点:static只跟类有关,跟对象无关;

    static本身就是一个“内部”类的一个对象(对象就是类本身);

    注意事项:方法内不能再用static来进行修饰;

  8. package、import

    package申明一个自己的包名;(com/org开头,表示公共/私有)

    import放在package里面,把在本类中引用到的类(JDK、自定义类)所在的包引过来;不同包才需引包;

    如何看API:

    第一:先看类所在包是否是想要的,看一下简介;

    第二:看构造方法里面有几个重载的方法,作用分别是什么;

    第三:看成员方法里面是否有所需的方法,直接用对象去调用;

    API文档需要记的包名:

    java.lang.*:在java中不需要导包;

    java.awt.*:界面(GUI)类;图形用户界面

    java.net.*:网络通信;

    java.io.*:输入、输出流;

    java.util.*:常用工具类;

  9. Eclipse快捷键

    ctrl+左键:进入java底层代码(API文档对应的类)

    ctrl+o:查找相对应类的方法;

    ctrl+1:逆向书写代码,从右到左;

  10. 继承:

    概念:如果两个类存在继承关系,子类就可以拥有父类所有成员变量和方法;

    语法:权限+class+子类+extends+父类{}

    注意事项:java中只能单继承,但可以多重继承;

  11. 权限修饰符


    注意事项:protected如果是在不同包,必须存在继承关系才能调用,否则无法调用;

    多个类中,只能有一个public类;权限只修饰类、方法、成员变量;

  12. 重写:

    条件:只存在继承中,方法头必须一模一样;

    注意事项:父类的普通方法会被子类的重写方法所覆盖;

    父类里面被重写的方法不能比子类里面的重写方法权限高;(除private)

  13. 静态的问题:

    类的加载顺序:(静态块、静态变量)>静态方法>构造方法>成员变量>成员方法;


课后练习:

1、已知有一个游戏类Game,有一个play();它有四个子类,分别是C9、CF、CS、LOL

要求:四个子类都必须重写play()方法;


public class Game {

    public void play(){

        System.out.println("Game");

    }

    public static void main(String[] args){

        Game[] g = new Game[4];

        g[0] = new C9();

        g[1] = new CF();      

        g[2] = new CS();       

        g[3] = new LOL();

        for(int i=0;i<g.length;i++){

            g[i].play();

        }

    }

}

class C9 extends Game {

    public void play(){

        System.out.println("C9");

    }

}

class CF extends Game {

    public void play(){

        System.out.println("CF");

    }

}

class CS extends Game {

    public void play(){

        System.out.println("CS");

    }

}

class LOL extends Game {

    public void play(){

        System.out.println("LOL");   

    }

}



本文出自 “” 博客,请务必保留此出处http://linyingkun.blog.51cto.com/2393912/1574787

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。