1、面向对象概述
1)面向对象是相对面向过程而言;
2)面向对象和面向过程都是一种思想;
3)面向过程:强调的是功能行为;
面向对象:将功能封装进对象,强调具备了功能的对象;
4)面向对象是基于面向过程的;
5)面向对象三个特征:封装、继承、多态。
2、类与对象关系
类就相当于对现实生活中实物的描述,对象就是这类事物实实在在存在的个体;类类型变量指向对象。
3、成员变量与局部变量
成员变量作用与整个类中,存堆内存,因对象存在才存在;
局部变量作用于函数或语句中,存栈内存。
4、匿名对象
是对象的简化形式;
两种使用情况:
1)当对对象方法,仅进行一次调用时;
2)可以作为实际参数进行传递。
5、封装
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。这样将变化隔离,便于使用,提高重用性和安全性。
封装原则:
1)将不需要对外提供的内容都隐藏起来;
2)把属性都隐藏,提供公共方法对其访问。
6、关键字(private)
private是私有的意思,它是权限修饰符,用于修饰类中的成员(成员变量,成员函数),被修饰的成员只在本类中有效。
私有仅仅是封装的一种表现形式。其可以在访问方式中加入逻辑判断语句,对访问的数据进行操作,提高代码的健壮性。
7、构造函数
1)特点:
A、函数名与类名相同;
B、不用定义返回值类型;
C、不可以写return语句。
2)作用:给对象进行初始化。对象一建立就会调用与之对应的构造函数。
3)注意:默认构造函数的特点,空参数的构造函数;
多个构造函数是以重载的形式存在的。
4)不同点:
A、构造函数和一般函数在写法上不同;
B、在运行上也有不同。构造函数是在对象一建立就运行,给对象初始化。
而一般函数是对象调用才执行,是给对象添加对象具备的功能;
C、一个对象建立,构造函数只运行一次,而一般函数可以被该对象调用
多次。
5)什么时候定义构造函数?
当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定
义在构造函数中。
6)构造代码块:
构造代码块作用是给对象进行初始化,对象一建立就运行而且优先于构
造函数运行。
其和构造函数的区别:构造代码块是给所有对象进行统一初始化,而构
造函数是给对应的对象初始化。
8、this关键字
是用以区*部变量和成员变量同名情况。
1)this代表本类的对象,它所在函数所属对象的引用。简单说就是哪个对象调用this,this就代表哪个。this可用于构造函数中,调用类本身重载的构造函数,但必须写在第一行。
2)当定义类中功能时,该函数内部要用到调用函数的对象时,这时用this来表示这个对象,但凡本类功能内部使用了本类对象,都用this表示。
3)this语句不能用于一般函数,用于构造函数间进行互相调用,只能定义在构造函数第一行。
例:比较两个人的年龄
class Person
{
private String name;
Private int age;
Person(int age)
{
this.age =age;
}
public boolean compare(Person p)
{
return this.age = age;
}
}
class personDemo
{
public static void main(String[ ] args)
{
Person p1 =new Person(20);
Person p2 = new Person(25);
Boolean b = p1.compare(p2);
System.out.println(b);
}
}