Java中的对象
面向过程是面向对象的基础。
面向过程强调的是功能;行为;过程。
面向对象是将功能分装进对象,强调具备了功能的对象。
有三个特征:1.封装;
2.继承;
3.多态。
类和对象的关系
类就是对对象的描述。 如果把类比作图纸那么对象就是以这张图纸为依据造的工具实物。
对象就是类的现实投影。
图纸中的各种属性就对应Java类中变量 和函数(方法)。
//创建一个类
class Car
{
String color = "red";
int num = 4;
void run()
{
System.out.println(".......");
}
}
class CarDemo
{
public static void main(String[] args)
{
//建立对象
Car c = new Car();//c就是一个类类型变量(此时的类型为Car),类类型变量指向对象(在堆中的实体)
//感觉类似于C中的指针。
}
}
匿名对象的使用
一、当对对象的方法值只调用一次是,可以使用匿名对象来完成,这样比较简化
class CarDemo
{
public static void main(String[] args)
{
//匿名函数的调用
new Car().run();//改变类中变量并没有意义。
}
}
二、匿名函数可以将匿名对象做为实际参数进行传递。
class Car
{
String color = "red";
int num = 4;
void run()
{
System.out.println(".......");
}
}
class CarDemo
{
public static void main(String[] args)
{
show(new Car());
}
//这里在show函数中的c指向了 new Car(在堆中建立的这个对象)
public static void show(Car c)
{
c.num =5;
c.color = "white";
c.run();
}
}
封装
封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装的原则:将不需要对外提供的内容都隐藏起来、,
把属性都隐藏起来,提供公共方法对其访问。
封装方式之一private
关键字private私有权限修饰符,用于修饰类中的成员私有只在本类中有效(其他类不能访问)
其他类访问属性的方式
class Person
{
private int age;
//间接访问
public void setAge(int a);
{
age = a;
}
//间接访问,一个属性一般对应两个函数。
public int getAge();
{
return age;
}
pubilc void speak()
{
System.out.print;n("age = "+age);
}
}
class PersonDemo
{
Person p = new Person();
p.setAge(15);
p.speak();
}