目录
面向对象篇
成员变量(实例变量,属性),局部变量(本地变量),静态变量(类变量)
this用法
this.变量名 调用成员变量,与局部变量区分,如this.name = name;把后一个局部变量name的值赋给前一个成员变量name
this.方法名 调用成员方法
this.() 调用构造方法,只能在构造方法中使用,调用构造方法时this()必须放在第一行,不能使用this()互相调用
成员变量可以不初始化,走自动初始化,初始化可以调用函数,这个函数不能与实例化对象之后才能使用的属性或方法相关。
构造函数在新建对象时自动调用,新建对象,进入构造函数方法头,成员变量声明,构造函数内初始化,新建对象完成交给对象变量管理。构造函数可重载。
static用法
声明一个变量,变量可以通过类名调用
声明一个方法,方法可以通过类名调用
声明一个代码块,由于类只加载一次,因此静态代码块也执行一次,可用来对成员变量进行初始化
只有创建一个实例对象之后计算机才会分配内存空间,static修饰的可以不实例化对象就使用,用类名调用,也可以实例化之后用对象名调用。如果static调用了非static成员,那静态成员就不能不实例化使用, 静态成员就不能算是静态成员。.
封装
类里边的成员变量应该是私有的,确保外界不会对类里边的数据进行更改,只有在创建对象时的参数可以传递到形参里边去。封装,以类为单位,实例化后的内部数据由对象自己保护,外部只能通过操作来使用。
#@Override 表示下面的函数是覆盖了父类的函数,重写,可判断该函数是否是从父类继承的函数
容器
容器的创建需要确定容器类型,元素类型
容器可以直接输出,输出为[a,b,c]
ArrayList
ArrayList<String> s = new ArrayList<String>();
HashSet
HashSet<String> s = new HashSet<String>();
是集合,集合中不能有重复的元素
HashMap(key,value)
HashMap<Integer,String> s = new HashMap<Integer,String>();
s.put(key,value); 在HashMap里放进key,value
s.get(key); 获得key相对应的value(value是对象,如果不存在返回null)
s.containskey(key); 判断是否包含指定的key,用于检测value是否存在
s.keyset(); 获取所有的key
s.size(); 获取HashMap的大小(key的数量)
直接输出HashMap时是随机的,遍历是随机的
#静态代码块初始化,但是构造函数也初始化,所以静态代码块有什么特殊意义?