面向对象
对象:Object
分类:1、结构化编程。
他的核心是面向过程,是围绕解决的任务来进行的。
2、面向对象编程。
是建立对象模型,将问题域化为不同的对象去处理,是围绕问题域中的对象进行的。
几个关键概念:
1.属性
是对象身上有什么值数据,特点是名词。
2.行为
既是对象的功能,特点是动词。
对象 = 属性 + 行为
对象:万物皆对象,对象因关注而产生。
类是对象的抽象,对象是类的实例。
类: 具有相同属性和行为的对象的类型。
类的定义: 本质上是创建自定义数据类型。
注意:
1.当类是public时,类名必须和文件名保持一致。
2.一个类编译为一篇class文件,class文件名和类名保持一致。
3.与局部变量不同,属性可以不赋初值。因为产生对象的时候就会自动初始化。
4.属性拥有访问修饰符,局部变量和常量都没有。若不写,也有默认。
有4种访问修饰符: public , private ,protected ,默认。
public :是公用的,外面是可以访问并修改的。
private: 是私有的,只能在本类中进行访问。
如果外部需要调用或者修改,应该提供公共的访问器与修改器。( get / set 方法)
变量属性一般都是private的。
操作当前属性最好都加上this关键字。
如果一个对象没有被利用,那么就被GC回收。
GC:垃圾回收机制, 是一个线程。
也可以自己回收, 对象 = null;
JavaBean 规范:
1、必须为私有属性提供符合命名规范的get/set方法。(这个也属于信息的隐藏)
2、必须要有无参构造器。
3、
*********************************************************************************************
面向对象的特征:
1、封装。
分为:1.类的组装(对类括号里面的东西进行确定)。
2.信息隐藏
1>访问修饰符
2>方法的实现
2. 继承
类与类的关系 : -------is a
*********************************************************************************************
在Java.lang包中的类都是直接加载的,无须import
NullPointerException:企图调用一个空对象的属性或者方法。
*********************************************************************************************
栈结构:
特点:先进后出。 方法嵌套时候的为方法调用栈。
递归: 让一个方法调用其本身。
递归具有循环的特点。
使用场景:下一次循环的初始条件是上次循环的结果。
在Java中只有值传递。
引用数据的传递也是值传递。
引用和基础的值改变差别是由于保存的方式不同。
真正的引用传递:是把实参中的引用和地址传递。
*********************************************************************************************
构造器:
用途:产生一个对象
语法:
1、方法名必须和类名保持一致
2、没有返回类型(连void都没有)
细节:
1、如果一个类没有书写构造方法,JVM会自动默认给他一个无参构造。
2、如果一个类书写了构造方法,JVM不会提供一个无参构造。
3、一个类可以有多个构造方法,由于本类构造方法必须和类名保持一致,
所以只能依靠参数列表的不同来区分,这种被成为方法重载。
位置:
写在属性之后,方法之前。
执行步骤:
1、在堆中划分空间。
2、在该空间划分属性。
3、对属性进行初始化(基本类型化为0,引用类型化为null)
4、执行我们在构造方法中书写的代码。
*********************************************************************************************、
this的使用:
1.this.*****或者 this.****( ) 表示每个对象本身的引用。
2.this ()代表调用同一个类的其他构造器。
注意:this( ) 只能放在构造器的第一句。
*********************************************************************************************
内存的分区:
栈:局部变量
堆:new出来的
数据段:
代码段: 方法
类原则: 开闭原则;单一原则(一个方法只做一个事情)。
system.exit(0) ; 关闭虚拟机。也就是在任何地方都可以结束系统。
在输入类型的方法中,要对用户输入的信息进行校验。
1.有效性校验 2.业务性校验。