1.面向对象思想
Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的引导下,使用Java语言去设计、开发计算机程序。这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。
面向对象强调对象,面向对象思想是一种更符合我们思考习惯的思想,他可以将复杂的事情简单化,并将我们从执行者变成指挥者,面向对象的语言中,包含了三大基本特征,封装、继承、多态
2、类和对象
1、类是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类的事物
2、对象是一类事物的具体体现,对象是类的一个实例,具有该类事物的属性和行为
3、类与对象的关系
1.1、类是对一类事物的描述,是抽象的。
1.2、对象是一类事物的实例,是具体的。
1.3、类是对象的模板,对象是类的实体
3、类的定义
1、Java用class描述事物 :
1.1、成员变量:对应事物的属性
1.2、成员方法:对应事物的行为
2、类的定义格式:
2.1、定义类:就是定义类的成员,包括成员变量和成员方法
2.2、成员变量:和以前的定义的变量几乎一样,只不过位置发生了改变。在类中,方法外
2.3、成员方法:和以前定义方法几乎一样,把static去掉
4、对象的使用
1、创建对象:
类名 对象名=new 类名();
2、使用对象访问类中的成员:
对象名.成员变量;
对象名.成员方法();
3、引用类型作为参数,传递的是地址
4、成员变量的默认值
数据类型 | 默认值 | |
基本类型 | 整数(byte,short,int,long) | 0 |
浮点数(float,double) | 0.0 | |
字符(char) | '\u0000' | |
布尔(boolean) | false | |
引用类型 | 数组,类,接口 | null |
5、成员变量和局部变量的区别
5.1、在类中的位置不同:
成员变量:类中,方法外
局部变量:方法中或者方法声明上(形式参数)
5.2、作用范围不一样:
成员变量:类中
局部变量:方法中
5.3、初始化的值不同:
成员变量:有默认值
局部变量:没有默认值。必须先定义,赋值,最后使用
5.4、在内存中的位置不同:
成员变量:堆内存
局部变量:栈内存
5.5、生命周期不同:
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
6.封装
1、面向对象的三大特征:
封装、继承、多态
有了封装,才有继承,有了继承才能说多态
2、面向对象的首要特征:封装
如现实中的手机、电脑,照相机,不需要知道内部的结构,只要几个按钮就可以完成工作。
3、封装作用:
3.1、保证内部结构的安全
3.2、屏蔽复杂,暴露简单
在代码中,对于代码的调用人员来说,不需要关系代码的复杂实现,,只需要简单的访问入口就可以了,另外,类体中安全级别较高的数据封装起来,外部人员就不能随意访问了,来保证程序的安全
4、不封装有什么问题
类里的属性对外暴露,在外部程序中可以随意访问,导致不安全
5、怎么进行封装
5.1、属性私有化(使用private进行修饰)
5.2、对外提供简单的操作入口:
写一个方法专门来读(get)
写一个方法专门来写(set)
6、空指针异常导致的最本质的原因是?
空引用访问"实例相关的数据"
7、java开发规范中有要求,set方法和get方法要满足以下格式。
get方法的要求:
public 返回值类型 get+属性名首字母大写(无参){
return xxx;
}
set 方法的要求:
public void set+属兴名首字母大写(有1个参数){
xxx=参数;
8、set入口设置关卡
在set方法里设置条件,限制写入的值,不能随意改动,保证安全性
9、static
9.1、static翻译为静态的
9.2、所有static关键字修饰的都是类相关的,类级别的
9.3、所有static修饰的,都是采用"类名."的方式访问
9.4、static修饰的变量:静态变量
9.5、static修饰的方法:静态方法
变量的分类:
变量根据声明的位置进行划分:
在方法体当中生明的变量叫做:局部变量
在方法体当外声明的变量叫做:成员变量
成员变量又可以分为:
实例变量
静态变量
static 相关,访问时采用"类名."的方式访问。不需要new对象。没有空指针异常的发生
9.6、什么时候变量声明为实例的,什么时候声明为静态的
如果这个类型的所有对象的某个属性值都是一样的,不建议定义为实例变量,浪费内存空间,建议定义为类级别的特征,定义为静态变量在方法区只保留一份,节省内存开销
10、this
10.1、this代表所在类的当前对象的引用(地址值),即对象自己的引用
10.2、this使用格式:this.成员变量,当方法中只有一个变量名时,可以省略不写
11、构造方法:
当一个对象被创建时候构造方法用来初始化该对象,给对象的成员变量赋初始值
11.1、如果你不提供构造方法系统会给出无参数构造方法
11.2、如果你提供了构造方法,系统将不再提供无参数构造方法
11.3、构造方法是可以重载的,既可以定义参数,也可以不定义参数