第四周总结

*继承*
    1,是类与类之间的关系,“单一”继承让类的结构更清晰,从类中抽取共同的方法与属性成父类,父类唯一性。
  * 优点:1,更用  2,分离//子类写属于自己的方法....
    3,is-a继承。
    4,extends关键字,在子类类名后面extends加父类类名,表示继承。
    5,子类通过内存叠加的方式实现。
  构造方法参与但不被继承//1,构造方法是产生对象的。2,构造方法与类名同名。
 * 方法的重写
   //只指普通方法,不包括构造方法。
    1,方法名,参数列表,返回类型都要相同。
    2,子类重写的访问修饰符必须大于等于父类被重写方法的访问修饰符。
    3,子类中重写的异常不能抛出比父类更多的异常。
  * Object类是所有父类,包括数组。
   * public final class getclass();
   * public int hashcode();
   * public boolean equals (Object x);//两个对象的内容是否相等。
   * protected Object clone()thows clone not supported Exceptions
   * public String toString();返回一个字符串描述
   * protected void finalize()thows Throwable;//销毁对象,给GC机制准备
   * public final void wait()thows Interrpted Exception;

  * this*
   含义:当前对象
   语法:属性&方法——本类中全部可访,他类中受到访问修饰符影响,造成部分可访。
 *  super*
   含义:当前类的父类。
   语法:属性&方法——本类全不可访,父类受访问修饰符影响,部分可访。

  * super()//默认:调用父类的无参构造。  调用父类的指定构造。
   位置:写在构造方法的第一句。
   * this()//没有默认  操作本类。
   位置:写在构造方法的第一句。
   super()&this()不能共存!
  * final  最终得,不变的
   类:修饰后不能被继承。
   方法:修饰后不能被重写。

类的高级概念

   * 访问修饰符
  1,public//公共的 2,protected//受保护的 3,default//默认的 4,private//私有的
  * 封装  
   1,组装:定义一个类
   2,信息的隐藏
      2.1访问修饰符
      2.2方法的实现//调用者不需要知道方法的具体步骤,只关心功能是否实现
      2.3 提供符合命名规范的 getxx()访问器  setxx()修改器
    好处:类的成员变量可以成为只写或只读
          类对存储在其成员变量中的内容有一个整体的控制
          类的用户不需要知道类是如何存储数据的

 *静态类成员 Static*
凡是修饰属性或对象——全类共享一个值,与对象无关,属于类级别。
凡是Static都优先加载
类属性/静态属性:1,修饰的属性被产生于内存中的数据段的静态区中。
     2,常量直接加Static
类方法/静态方法:1,只能操作Static的属性和方法。
               2,工具类的工具方法全是类方法。
 构造方法不能用Static修饰。
 静态方法只能访问静态方法,非静态方法可以访问静态方法。
 一个静态方法可以调用其它类的静态属性

* 递归:一个方法在方法内部调用它本身,形成循环效果。
* 使用:当下一次循环的初始条件依赖于上一次循环的结果。
* 静态初始化块//静态代码块
publi class类{ //用途:在类加载期书写一些准备工作的代码
Static { //语句
}
}
类加载期即执行,在main方法之前,每个类只被执行一次
* 实例初始化块
在对象产生的时候被自动执行,没产生一次对象就执行一次,可执行多次。
* 顺序
在本类构造方法之前,父类构造方法之后。功能与构造方法部分重合。
* 内部类指代把1个类定义在另一个类的内部。
* 内部类也是一个完整的类,可以有属性,方法,构造方法,代码块。
* 内部类也有独立的class文件。//java文件的文件名与class文件名无关,除非有公共类。
* 特点:
独立的class文件。
同样需要编译。
同样可以产生对象。
*内部类的位置
* 1.成员内部类
* 1.1在外部类的内部,可以产生成员内部类的对象。
* 1.2静态内部类(特例)
* class文件名 = 外部类的类名 .class访this.this.2.2.12.2使2.3class=  内部类类名.class
* 2.4匿名内部类(特例) new 外部类类名(){代码块}.方法名()/外部类类名$数字,没有类名。

多态

* 相同的属性,不同的实现。
* 静态多态:在编译期就已知方法实现的最终效果/方法重载实现
* 动态多态:编译期未知,运行期根据绑定对象的不同有不同的效果/使用动态绑定和方法重写实现
* 转型技术:当操作符两端的数据类型不一致的时候,就会转型。
* 强转/向下转型
  int a = (int) 3.14//当大的数据往小的空间放,必须经行强转/向下转型
* 自动转换/向上转型
  double d = 5//当小的数据往大的空间放,会自动转换
* 引用数据类型同样存在转型技术/必须存在继承关系
* 只要这两种情况OK
  * 1,父类的引用可以指向子类的对象/向上  //只能调用来自父类的属性和行为,受访问修饰符限制
  * 2,本类的引用指向本类的对象/向下  //只能看到本类所有的属性和行为,受访问修饰符限制
*  强转,编译有可能通过,但运行有风险;必须保证运行的最终结果。
*  动态多态技术
  * 1, instanceof 关键字,运算符  /判断,返回真or假   
  * 2,向上转型技术
  * 3,动态绑定技术
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值