构造器和包
1.对象的打印操作
包名.类名@十六进制的hashCode
2.对象比较操作
==号:对于基本数据类型来说比较的是值,对于引用数据类型来说比较的是在内存中的地址值。每次使用new关键字都表示在堆新开辟一块内存空间,不同的内存控件,地址值不同。
3.匿名对象
没有名称的对象,创建对象之后没有赋值给某个变量。
只是在堆中开辟了一块空间但并没把地址赋给变量。
因为没有名称,匿名对象仅仅只能使用一次,一般的,把匿名对象作为方法的实参传递
4.对象的生命周期
每次使用new关键字的时候,就会在内存开辟一块新空间,此时对象开始存在。
对象的结束:当堆中的对象,没有被任何变量所引用此时该对象就成了垃圾,等着垃圾回收器(CG)来回收该垃圾,当被回收的时候,对象被销毁了,回收垃圾的目的,释放更多的内存空间
5.什么是构造器
在创建对象时自动调用的方法,称为构造器也叫构造方法,在类中找不到默认的构造器,通过反编译工具可以看到默认的构造方法
编译器编译源文件时,会创建一个缺省的构造器,如果成员变量设置了默认值,默认值也是在构造器当中设置的
6.构造器的作用
创建对象,必须和new一起使用
完成对象的初始化操作
7.构造器的特点
构造器的名称是和当前类名一样的
禁止有返回类型千万不能使用void等作返回值
在构造器当中不能使用return,它本身会有一个默认的返回值即当前创建对象的地址
8.默认构造器的特点
符合构造器的特点
没有参数
如果类使用了public修饰,它创建的默认构造器也会加public
自己定义了构造器编译器就不会帮你再生成默认构造器了
9.构造器的重载
与方法的重载一样
10.static
状态和行为有类和对象之分
如果在字段和方法前添加了static,那么这个字段或者方法就属于类
特点:
static修饰的内容是随着类的加载而加载的,当JVM把字节码加载到虚拟机当中,static它修饰的成员会自动的加载到内存当中(方法区)
static修饰的内容,优先于对象存在
static修饰的内容,被该类型的所有对象共享
static修饰的内容,可以直接使用类名来调用
11.类中的成员
字段(成员变量)、方法、内部类
12.类成员和实例成员
类成员:使用static修饰的成员
实例成员:没有被static修饰的成员
13.类成员和实例成员的访问
在static方法中只能调用static成员
非static方法可以访问静态成员也可以访问非静态成员
14.什么时候使用static
被所有的对象共享时,节省空间,没必要每个对象都存储一份,可以直接使用类名
15.什么是包
在开发中,我们存在几百上千个java文件,如果所有的java文件都在一个目录中,管理起来也很痛苦,java也可以创建一个类似文件夹的东西,我们称这个文件夹为包
16.包的作用
把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用
如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同,当同时调用两个不同包中相同类名的类时,应该加上包名加以区分。因此包可以避免名字冲突
包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类
17.包的语法
package 包名.子包名.子子包;
必须把该语句作为java文件中,并且是第一行代码
18.包的定义
包名必须遵循标识符规范全部小写
企业开发中,包名用公司的域名倒写
使用格式:package 域名倒写.模块名.组件名;
19.类的名称
类的简单名称:直接类名
类的全限定名称:包名.类名
20.import语句
当A类和B类不在同一个包中,若A类需要使用到B类,此时就得让A类中去引用B类
静态导入:
把其他包里面的内容在本类当中使用不需要使用其类名来调用,直接使用别的包里的方法
mport static 类得全限定名.该类中得static成员名;
在实际开发中我们不使用静态导入因为如此分不清某一个静态方法或字段来源于哪个类
本文分享自微信公众号 - IT那个小笔记(qq1839646816)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。