2018-01-24

静态初始化块

public class HelloWorld{
      String name;
      //通过初始化块为成员变量赋值
      {
            name="sb";
      }
}

在类的声明中,可包含多个初始化块,当创建类的实例时,就会一次执行这些代码块。如果使用static修饰初始化块,就成为静态初始化块。静态初始化块只在类加载时执行,只会执行一次且只能给静态变量赋值。执行顺序:静态初始化块→普通初始化块→构造方法。

访问修饰符

private:本类
默认:本类、同包
protected:本类、同包、子类
public:本类、同包、子类、其他

内部类

1.为什么要用内部类
1)提供了更好的封装,不允许同一个包中的其他类访问该类。
2)内部类的方法可直接访问外部类的所有数据,包括私有数据。
2.class文件
编译java文件会生成外部类.class和外部类$内部类.class两个class文件。
3.内部类实例化
静态内部类实例化:内部类 对象名=new 内部类();
非静态内部类实例化:内部类 对象名 = 外部类对象.new 内部类();
方法内部类:内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,因此方法内部类不能使用访问控制符和static修饰符。

初始化顺序

父类属性初始化→父类构造方法→子类属性初始化→父类构造方法

final关键字

修饰类:该类不允许被继承。
修饰方法:该方法不允许被覆盖
修饰属性:该类的属性不会进行隐式的初始化,初始化时赋值或者构造方法中赋值
修饰变量:只能赋值一次

super

1.代表父类,调用父类属性:super.属性;调用父类方法:super.方法
2.子类构造过程中必须调用父类的构造方法。
如果子类构造方法中没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法:super();。
如果显示的调用构造方法,必须在子类的构造方法的第一行。
如果子类构造方法中既没有显示调用父类的构造方法,而父类又没有无惨的构造方法,则编译出错。

Object类

1.toString()
在Object类里面定义toString()方法时返回的对象的哈希code值(对象地址字符串)
2.equals()
比较的是对象的引用是否指向同一块内存地址。利用编译器可以自动重写equals()

public class Test {
    private String age;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Test test = (Test) o;
        return Objects.equals(age, test.age);
    }

    @Override
    public int hashCode() {

        return Objects.hash(age);
    }
}

数据模型分析
业务模型分析
显示和流程分析

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,094评论 18 399
  • Advanced Language Features 知识点:一. static修饰符 static修饰符可以用来...
    风景凉阅读 514评论 0 0
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,851评论 0 11
  • 利智酱阅读 270评论 0 0
  • 什么是坚持 最近总是听到大家都在谈“坚持”这个词,为此特意上百度查了一下。 "坚持"一词出自《新唐书·元澹传》:“...
    summer1210阅读 941评论 0 0

友情链接更多精彩内容