1、 类与对象的区别,类是对象的模板,对象是类的实例
2、 创建类的语法:class 类名称{},类中由属性及方法组成
3、 对象的创建语法:
· 声明对象:类名称 对象名称 = null ; //相当于在栈内存空间声明了一个对象名称,实际上是保存的的堆的地址
·实例化对象:对象名称 = new 类名称() ; //开辟堆内存空间,堆中存放的是全部的属性
· 类间的引用传递实际上传递的就是堆内存空间的使用权
· 如果一个对象只声明而未实例化,在使用时会出现空指向异常
· 垃圾对象产生:无用的内存空间,没有任何栈内存指向,而且一个栈内存只能指向一个堆内存空间
4、 封装性:类中的内容对外部不可见
· 在java中现在可以使用private关键字实现封装,但是封装之后的的属性只能通过setter及getter方法设置和取得
· 在类的设计中,所有的属性都要求进行封装。这是一个标准的设计原则。
5、 构造方法
· 任何一个类中都会存在一个构造方法
· 构造方法名称与类名称一致,没有返回值类型
· 构造方法会在对象使用关键字new进行实例化的时候自动调用
· 如果一个类中没有明确的声明一个构造方法的话,则会自动生成一个无参的什么都不做的构造方法
6、 String类
· String有两种实例化方式:
|- 直接赋值:只会开辟一个堆内存空间
|- new Stirng():会开辟两个堆内存空间,有一个是垃圾
· String的内容一旦声明则不可改变,改变的只是内存地址的指向
· 一个字符串就是一个String的匿名对象
· String类中提供了若干个操作方法:substring()、replaceAll()、split()、length()
7、 this关键字
· 使用this表示的是当前对象,当前正在操作方法的对象
· 使用this可以调用类中的属性或方法
· 使用this可以调用构造方法,但是必须放在构造方法的首行
this关键字的两个用途:① 引用隐式参数,② 调用该类其他的构造器.
8、 super关键字
两个用途: 一是调用超类的方法,二是调用超类的构造器。
this、super关键字在调用构造器的时候,使用方式相似。只能作为另一个构造器的第一条语句出现
9、 一个类可以接收自己本类的引用但是此用法只在对象比较一个位置上使用