1、面向对象的关系
前期面向过程(强调功能行为)>>面向对象(将功能封装进对象,强调了具备了功能的对象)
面向对象是相对面向过程而言
面向对象三个特征:封装、继承、多态。
类与对象的关系:
- 类就是对现实生活中事物的描述
- 对象就是这些事物实实在在存在的个体
属性对应类中变量,行为对应类中函数:
其实定义类,就是在描述事物,就是定义属性和行为,属性和行为共同成为类中的成员(成员变量和成员方法)
class CarDemo
{
public static void main(String[] args)
{
Car c=new Car();
}
}
class Car
{
string color="红";
int num=4;
void run()
{
System.out.println("color="+color+"num="+num);
}
}
- Java中的指挥方式:对象.对象成员;(C.color=”blue”;)
2、成员变量与局部变量
成员变量:作用于整个类中——>堆内存中。
局部变量:作用于函数/语句中——>栈内存中。
3、匿名对象
使用方式:
(1)当对象的方法只调用一次时使用,这样比较简化,如果对一个对象进行多次调用,必须起名。
(2)将匿名对象作为实际参数进行传递。
4、封装
定义:隐藏对象的属性与实现细节,仅对外提供公共访问方式。 -
优点:将变化隔离,便于使用,提高复用性,提高安全性。
原则:将不用对外提供内容都隐藏起来,把属性都隐藏,提供公共方法进行访问。
之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断语句,对访问的数据进行操作,提高代码的健壮性。
class Person
{
private int age;
//private私有,权限修饰符,用于修饰(成员变量成员函数)
public void setAge(int a)
{
age=a;
}
public int getAge()
{
return age;
}
void speak()
{
System.out.println("age="+age);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p=new person();
p.setAge(20);
p.speak();
}
}
5、构造函数
特点:①函数与类名一致②不用定义返回值类型③不用return语句。
作用:给对象进行初始化。
构造函数与一般函数在运行上有不同
构造函数在对象一建立就运行,给对象初始化。而一般方法是对象调用才执行,给对象添加对象具备的功能。一个对象的建立,构造函数只运行一次,而一般函数,可被调用多次。
具体什么时候使用:
分析事物时,该事物存在具备一些特性或行为。那么,将这些定义到函数中。
6、构造代码快
作用:给对象进行初始化。
-区别:构造代码快是对象一建立就运行,优先于构造函数执行,并且所有对象统一初始化,构造函数是对应的对象初始化。