面向对象三个特征:封装,继承,多态
Java的引用型数据包括对象、数组、以及接口
成员变量和局部变量区别
1.作用范围:成员变量作用于整个类中,局部变量作用于函数中,或者语句中。
2.在内存中的位置:成员变量在堆内存中,因为对象的存在,才在内存中存在。局部变量存在栈内存中。
例:
class Car
{
String colour = "red";
int num = 4;
public void run()
{
System.out.println(colour+"....."+num);
}
}
class CarDemo
{
public static void main(String[] args)
{
Car c = new Car();//创建对象,c就是一个类类型变量,类类型变量指向对象。在堆内存开辟空间
c.colour = "blue";//改变此对象颜色
c.run();//调用方法
Car c1 = new Car();//创建对象c1
c1.run();
}
}
-----------------------------------------------------------------------------------------------------------------------------------
匿名对象:是对象的简化形式
(1)对对象方法仅进行一次调用
例1:
class Car
{
String colour = "red";
int num = 4;
public void run()
{
System.out.println(colour+"....."+num);
}
}
class CarDemo
{
public static void main(String[] args)
{
new Car.num = 5;//创建匿名对象
new Car.color = "blue";//当创建此匿名对象时,上面的匿名对象消失
new Car.run();//当创建此匿名对象,上面的匿名对象消失,并运行了run()方法,输出red和4
}
}
所以,匿名对象调用属性无意义,调用方法有意义
(2)匿名对象可以作为实际参数进行传递
例2:
class Car
{
String colour = "red";
int num = 4;
public void run()
{
System.out.println(colour+"....."+num);
}
}
class CarDemo
{
public static void main(String[] args)
{
show(new Car());// 匿名对象作为实际参数进行传递
}
public static void show(Car c)//接收匿名对象
{
c.colour = "blue";
c.num = 5;
c.run();//输出改变后的结果
}
}
---------------------------------------------------------------------------------------------------------
个人总结:要掌握对象的创建,利用对象使用方法和属性。掌握匿名对象的内涵。会画内存流程图,有助于理解匿名对象性质。