这篇文章是对于刚开始学习java的同学整理的知识点 希望对你有一些帮助
面向对象:即类与对象的关系,类是对某一类事务的描述,是抽象的、概念上的定义;对象是实际存在的该类事务的每个个体因而也称实例(instance)
类的定义:必须先有类再有对象
对象的创建及使用:
内存划分,栈内存与堆内存的关系:
对象保存在栈内存之中,而具体内容保存在堆内存之中。
对象间的引用传递,实际上传递的就是堆内存空间的使用权。
●声明对象:类名 对象名称,栈内存中声明的,与数组一样,数组名称就保存在栈内存之中,只开辟了栈内存的对象是无法使用的,必须有其堆内存才可以使用。
●实例化对象:new 类名(),在堆内存中开辟空间,所有的内容都是默认值。
/String:是一个字符串,本身是一个类,就是一个引用数据类型,默认值为null。
/int:是一个整数,本身是一个数,所以是基本数据类型,默认值为0。
●使用格式:调用属性:对象 .属性 调用方法:对象 .方法()
封装:
封装就是保护内容,保证某些属性或方法可以不被外部看见。
●访问权限:
私有的private,公共的public,受保护的protected
其中private是最基本的,也是最常见的
●setter与getter方法:
如需假如验证时,可以写在setter方法中
构造方法:只要一有对象实例化就会调用构造方法,每个类都至少有一个构造方法,默认为空构造。构造方法的主要目的是为类中的属性初始化。
●原则:
●定义格式:
●匿名对象:
在Java中如果一个对象只使用一次,则就可以将其定义成匿名对象,即只 开辟了堆内存的实例对象。
String类:
●两种实例化方式:
/直接赋值:String str=“hello”;
/通过关键字new赋值:String str = new String(“hello”);
●字符串的内容一旦声明就不可改变:
●使用“equals”比较:判断具体的内容是否相等
●使用“==”比较:判断地址空间是否相等,判断的是地址值。
●常用方法:
详情请双击查看此文档
●一个字符串就是String的匿名对象,String要使用直接赋值方式,因为 使用new会开辟两个空间,造成内存浪费
this关键字:
●表示类中的属性:this.属性
●使用this调用构造方法:this()调用构造方法的语句只能放在构造方法首 行;在使用this调用本类中其他构造的时候,至少有一个构造方法是不用 this调用的。
●使用this表示当前对象:
static关键字:
●使用static声明属性:由static声明的属性为全局属性
●声明static方法:使用static方法,不能调用非static的属性或方法,
因为static属性或方法可以在对象没有实例化的时候直接进行调用。
代码块:
●普通代码块:直接定义在方法中的代码块。
●构造块:将代码直接定义在类中。构造块优先于构造方法执行,且执行多 次,只要一有实例化对象产生,就执行构造块中的内容。
●静态代码块:直接使用static关键字声明的代码块。静态块优先于主方法 执行,如果在普通类中定义静态块,优先于构造块执行,不管有多少个实例 化对象产生,静态块只执行一次,主要功能是为静态属性初始化。
在静态块执行完毕后需要使用程序退出指令。
单例模式:
对象数组:
●静态初始化:
●动态初始化:
内部类:在一个类的内部还存在另外一个类
●缺点:正常的一个类操作时,在类中最好只定义属性或方法,如果定义一 个类,则会破坏程序的结构。
●优点:可以方便的访问外部类中的私有属性。
●使用static声明内部类:如果一个内部类使用static关键字声明,则此 内部类就称为外部类,可以直接通过外部类 .内部类进行访问。
●在外部访问内部类:一个类除了可以通过外部类访问,也可以在其他类中 直接调用。
外部类 .内部类 内部类对象 = 外部类实例 .new 内部类();
●在方法中定义内部类:
继承:子类继承父类,可以扩展已有类的功能。
●继承的格式:
●extends关键字:称为扩展,子类扩展一个类,子类也称为派生类。
●继承的限制:
●继承的访问限制:
●子类对象实例化过程:
●方法的覆写:
●方法重载与覆写的区别:
●super关键字的使用:
/在子类构造方法中:super(父类属性1,父类属性2,...)
/在子类方法中:super.父类方法名();
●super与this的区别:
final关键字:
●全局常量:
抽象类:抽象类不能实例化,子类必须覆写抽象类中所有的抽象方法。
●定义及使用规则:
●格式:
●抽象类不可以使用final关键字声明:
●抽象类中可以定义构造方法:
接口:一个类中完全是由全局常量(static final声明)和抽象方法组成
●格式:
●接口的实现:
●继承抽象类实现接口:
●接口的继承:
多态:
●对象的多态性:
instanceof关键字:
一个类永远不要去继承一个已经实现好的类,只能继承抽象类或实现接口。
Object类:
●主要的方法: