zoukankan      html  css  js  c++  java
  • 类总结

    static

    1.实例方法与类方法

    ​ ①实例方法既可以操作实例变量也可以操作类变量,可以调用该类中的实例方法或类方法

    ​ ②类方法无法操作实例变量与方法,只能操作类变量和该类的类方法

    ​ |*** 一个类中的方法可以互相调用 ***|

    2.实例变量与类变量

    ​ ①类变量既可以通过某个对象访问,也可以直接通过类名访问

    ​ ②实例变量仅仅是和相应的对象关联的变量,即不同对象的实例变量互不相同

    ​ 实例变量只能通过对象访问

    3.适用条件

    ​ 如果一个方法不需要操作实例成员变量就可以实现某种功能,

    ​ 就可考虑将这样的方法声明为类方法,好处是避免创建对象浪费内存

    this

    1.在构造方法中

    ​ 当this出现在类的构造方法中,代表使用该构造方法所创建的对象

    2.在实例方法中

    ​ 当this出现在类的实例方法中,代表正在使用该方法的当前对象

    abstract

    1. 类

    ​ ①abstract 类中可以有abstract方法

    ​ ②abstract 类不能用new创建对象

    ​ ③一个非abstract类是abstract的子类,他必须重写父类的abstract方法

    ​ 一个abstract类是abstract的子类,它可以重写也可以继承父类的abstract方法

    ​ ④abstract类的对象作上转型对象

    2.方法

    abstract方法只允许声明,不允许实现,而且不允许使用final和abstract同时修饰一个方法

    3.如何理解abstract

    抽象出重要行为标准,再去调用子类重写方法

    4. abstract类和接口对比

    ①abstract类和接口都可以由abstract方法

    ②接口中只能有常量,不能有变量;而abstract既可以用常量也可以有变量

    ③abstract类中也可以有非abstract方法,不可以有default实例方法

    接口不可以有非abstract方法,可以有default实例方法

    ④abstract还可以提供子类可以集成的变量和非abstract方法,如果问题涉及到继承,abstract比较好

    final

    1.final类

    final类不允许继承,没有子类

    2.final方法

    final方法不能被重写

    访问权限

    访问限制修饰符有public,protected,private(按照访问权限从高到低排列),是用来修饰成员变量或方法

    1.private

    ①对于私有成员变量和方法,只有在本类中创建该类的对象时,这个对象才能访问自己的私有成员变量和类中的私有方法

    ②当用某个类在另外一个类中创建对象后,如果不希望该对象直接访问自己的变量,就设置为private

    2.protected

    ①必须在同一个包中的类才能互相访问protected变量和方法,同一个包的任何类可以通过类名来访问protected变量和方法

    3.public

    都可以

    4.友好

    和protected类似

    注意: 如果子类和父类在同一个包中,那么,子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法。如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。

    内部类

    1.关系

    ①内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类的方法

    ②内部类的类体中不可以声明类变量和方法,外嵌类的类体中可以用内部类声明对象作为外嵌类成员

    ③内部类仅供他的外嵌类使用,其他类不可用其声明对象

    匿名类

    匿名类是是一个子类,没有类名,使用匿名类创建对象时直接使用父类的构造方法

    1.特点

    ①匿名类可以继承父类的方法也可重写父类的方法

    ②匿名类一定是内部类,匿名类可以访问外嵌类的成员变量及方法,类体中不可声明static变量与方法

    ③匿名类的常用方式时想方法的参数传值

    lambda表达式

    本质是一个匿名方法,目的是在使用但接口(只有一个方法的接口)匿名类时让代码更简洁,

    但是不提倡使用

    1.形式

    正常方法 int f(int a , int b){

    ​ return a+b }

    Lambda表达式:

    (int a , int b) -> {

    return a + b }

  • 相关阅读:
    Sublime text追踪函数插件:ctags
    上传项目后服务器的一些设置
    svg可缩放矢量图形
    定时备份mysql
    phpstudy配置ssl
    thinkphp数据表操作恐怖事件。
    把一个数组和另一个数组放进同一个数组
    mysql数据库备份与还原命令
    mysql一些有用的链接
    MySQL各版本的区别
  • 原文地址:https://www.cnblogs.com/oceanrxl/p/13235958.html
Copyright © 2011-2022 走看看