一、什么是面向对象
当我们要完成一项任务时,我们可以将任务分解成一个个步骤,通过执行每个步骤,最终完成任务,
这种方式我们称为面向过程。
完成一项任务,也可以采用另一种方式,将任务分配给能够完成这项任务的对象,最终完成任务,这
种方式我们称为面向对象 。
二、类与对象的关系
类:是对某一类事物的描述
对象:是某一类事物的具体事物
比如,你骑着白马。这匹白马就是一个对象。它从属于马类,马类是对某一类事物的描述,所以马类是
一个类。
三、面向对象在Java代码中的体现
在java中,面向对象编程一般要先有类,再通过类创建对象。下面代码就是通过创建Car类,再通过类创
建出具体的对象car1,car2,car3。
//定义Car类,Car的属性(颜色 ,轮胎数),方法(run)
public class Car {
//定义汽车的颜色
String color = "red";
//定义汽车的轮胎数
int wheelNum = 4;
//定义car的行为(方法)
public void run() {
System.out.println(color + " car" + " is running...");
}
//构造函数,用于创建对象
Car(String c,int n) {
color = c;
wheelNum = n;
}
public static void main(String[] args) {
//创建对象
Car car1 = new Car("red",4);
//创建对象car2
Car car2 = new Car("blue",4);
//创建对象car3
Car car3 = new Car("yellow",4);
//car1car1走起
car1.run();
//car1car2走起
car2.run();
//car1car3走起
car3.run();
}
}
四、局部变量与成员变量
区别:
1、作用域
成员变量作用于整个类中
局部变量作用于函数、或语句中
2、内存中
成员变量储存在堆中
局部变量储存在栈中
五、匿名对象
顾名思义,匿名对象,就是不起名字的对象。代码示例:
public class HideCar {
public static void main(String[] args) {
//创建一Car类型的匿名对象
new Car("yellow",4).run();
//创建一Car类型的匿名对象作为参数传递给refittedCar方法
refittedCar(new Car());
}
//定义一个改装车方法
public static void refittedCar(Car c){
c.color = "black";
c.wheelNum = 5;
System.out.println("The car refitted to " + c.color +
" and " + c.wheelNum +" wheel" );
}
}
如上代码所示,匿名对象的使用情况一般分这两种情况:
1、当对象只进行一次调用的时候
2、匿名对象可作为实际参数进行传递
六、简单介绍垃圾回收
这里的垃圾是指无效又无法释方的空间。java语言中,主要有以下三种:
1、超出定义对象引用的作用域时,该引用指向的对象成为垃圾
{
//超出{}定义域,该对象成为垃圾
Car c = new Car();
}
2、对象引用被赋值为null时,该引用(原先)指向的对象成为垃圾
{
Car c = new Car();
//引用赋值为空,该对象成为垃圾
c = null;
}
3、创建的匿名对象,用完后成为垃圾
{
//该对象为匿名对象,无引用,为垃圾
new Car();
//当run()方法运行完毕,该对象成为垃圾
new Car().run();
}
七、封装性
- 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
- 好处:
- 将变化隔离
- 提高重用性
- 提高安全性
- 封装原则:
- 将不需要对外提供的内容都隐藏起来
- 把属性都隐藏,提供公共方法对其访问