zoukankan      html  css  js  c++  java
  • 第四周学习总结 补充

    1.构造方法不能被子类所继承,但子类对象创建时,会调用父类的构造方法产生对象。

    2.由于子类对象中包含完整的父类对象,所以父类对象中的所有属性和方法都是可以继承的(包括私有属性和私有方法)。只是私有属性和私有方法不能被子类直接访问,可以通过公有方法调用。

    3.静态代码块

    static{

    }

    在类加载时自动执行,而且只执行一次。

    当需要导入例如Scanner和FileReader这一类只需要一次导入或一次操作时,可以使用静态代码块,会比放在构造方法里好。

    4.实例化代码块

    {

    }

    对象每产生一个,就执行一次实例化代码块,执行时机是紧接着子类构造方法中的super()之后执行,在其他语句之前执行。

    5.多态

    允许一个父类变量引用子类的对象(相当于允许double x=int类型的3,小类型转变成大类型);允许一个接口类型变量引用实现类对象。反过来却不行。

    一句话描述:相同的行为,却有不同的实现。

    举例:

    public class animals(){

    }

    public class dog extends animals(){

    }

    public class cat extends animals(){

    }

    Animals an1=new dog();

    Animals an2=new cat();

    由于子类中包含一个完整的父类对象,所以父类变量中定义的方法和属性在子类对象中都能找到。

    所以父类对象可以指向子类对象。但是反过来,子类对象的方法和属性可能多于父类,所以子类变量不能指向父类对象。

    多态调用时,用父类变量指向子类对象,只能调用父类变量中定义的方法和属性,不能调用子类特有的方法和属性。

    多态调用方法时,优先调用子类重写的方法。

    同理,所以object作为所有类的父类 可以指向任何类的对象 例如:object ob1=new Animals();object ob1=new dog();object ob1=new cat();

    6.内部类

    在类的内部定义类 就叫内部类 包含内部类的就是外部类

    内部类相当于外部类的属性 内部类对象的产生必须依赖于外部类对象的产生

    内部类的命名规则:外部类比如是a.class  内部类名为b 那么内部类class名为 a$b.class

    例子:

    public class student{

          public student(){system.out.println(“学生类创建完成”)};

          public class goodstudent{

                   public goodstudent(){

                           system.out.println("好学生内部类创建完成");

                    }

          }

                  public static void main(String [ ]  args){

                  Student stu1=new Student();

                  Student.Goodstudent  gs1=stu1.new goodstudent();

                 }

    }

    7.多态的实现

    高内聚 低耦合(暂时不理解)

    8. for each循环 用于遍历数组元素

    举例:

    Animals [ ] arr1=new Animals [8 ];

    for(Animals a:arr1){

    a.eat();

    }

    9. a(变量名) instanceof type(如:student) 返回boolean值  注意 instanceof是连在一起的

    举例:

    if (arr[2] instanceof Human) {
    System.out.println("同类");
    }

    对于一个变量 他属于自己的类 也属于父类  都 返回true

    10.面向对象的特征

    继承、封装、多态

    补充:静态多态和动态多态

    静态多态性指的是程序在编译时,系统就能决定调用哪个函数,如重载
    动态多态性指在运行中才能动态确定操作指针所指的对象,主要通过虚函数和重写来实现。

    11.抽象类

    如果一个类中的方法只有定义,没有具体的实现,那么这个方法就叫做抽象方法。

    采用关键字abstract定义,拥有抽象方法的类就必须是抽象类,也必须用abstract修饰。

    抽象类不能实例化对象。(比如人类,本身就是一个抽象类。不能说实例化一个人类出来,而应该说实例化一个人出来,这个人是抽象类人类的子类,实例化也由这个子类去实现。)如果要实现只能通过指向子类对象 Human hu1=new Man();

    抽象类的抽象方法由子类根据子类的自身特点分别实现。

    抽象方法的一般形势:public abstract void getmoney();

    抽象方法不能用private修饰,因为本来就是要用来子类继承实现功能的,也不能static修饰。

    不能带有大括号{},否则报错,因为带有{}也是一种实现,而抽象方法是不能实现的。

    在子类继承了抽象类以后,快捷添加抽象方法的方式是点击红叉,选择 add unimplement methods选项进行添加。

    而且抽象类有几个抽象方法,子类就必须全部实现几个。如果不全部实现,那么就只能定义这个子类也是一个抽象类。

    补充:一个文件里可以创建多个类,但只能有一个public 类    而且主方法必须放在这个public类里   

  • 相关阅读:
    Atitit.android js 的键盘按键检测Back键Home键和Menu键事件
    Atitit  OOCSS vs bem
    Atitit.js模块化 atiImport 的新特性javascript import
    Atitit.css 规范 bem 项目中 CSS 的组织和管理
    Atitit.eclipse git使用
    Atitit jOrgChart的使用  组织架构图css html
    Atitit.java相比c#.net的优点 优缺点  v2 q330
    Atitit.判断元素是否显示隐藏在父元素 overflow
    Atitit.获得向上向下左的右的邻居的方法 软键盘的设计..
    Atitit..css的体系结构
  • 原文地址:https://www.cnblogs.com/zoujuns/p/5352008.html
Copyright © 2011-2022 走看看