面向对象 成员变量 匿名对象

面向对象


面向过程


1打开冰箱。
2存储大象。
3关上冰箱。

对于面向过程思想,强调的是过程(动作).

C语言.


面向对象 

冰箱打开。
冰箱存储。
冰箱关闭。
对于面向对象思想,强调的是对象(实体)。

C++  Java  C#

特点:
1,面向对象就是一种常见的思想。符合人们的思考习惯。
2,面向对象的出现,将复杂的问题简单化。
3,面向对象的出现,让曾经在过程中的执行者,变成了对象中的指挥者。


用java语言对现实生活中的事物进行描述。

对于事物描述通常只关注两方面。
一个是属性,一个是行为。

成员:成员变量<-->属性,成员函数<-->行为。


类与对象之间的关系?
类:事物的描述。
对象:该类事物的实例。在java中通过new来创建的


描述小汽车

分析:
1,属性。
	轮胎数。
	颜色。 
2,行为。
	运行。

定义类 其实就是在定义类中的成员。
成员:成员变量<-->属性,成员函数<-->行为。

Car c = new Car ();



成员变量和局部变量的区别:

1,
成员变量定义在类中,整个类中都可以访问。
局部变量定义在函数,语句,局部代码块中,只在所属的区域有效。
2,
成员变量存在于堆内存的对象中。
局部变量存在于栈内存的方法中。
3,
成员变量随着对象的创建而存在,随着对象的消失而消失。
局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。
4,
成员变量都有默认初始化值。
局部变量没有默认初始化值。 


匿名对象

new Car();

匿名对象。没有名字的对象 。

其实就是定义对象的简写格式。

Car c = new Car();
C.run()

c.run();--->  new Car().run();

new Car().run();


1,当对象对方法仅进行一次调用的时候,就可以简化成匿名对象。
new Car().num = 5;
new Car().color = "green";
new Car().run();
2,匿名对象可以作为实际参数进行传递。


基本数据类型参数传递

class Demo 
{
	public static void main(String[] args) 
	{

		int x = 3;
		show(x);
		System.out.println("x="+x);	//x=3;
	}
	public static void show(int x)
	{
		x = 4;
	}
}

引用数据类型参数传递

class Demo
{
	int x = 3;
	public static void main(String[] args)
	{
		Demo d = new Demo();
		d.x = 9;
		show(d);
		System.out.println(d.x);	//d.x=4;
	}
	public static void show(Demo d)
	{
		d.x = 4;
	}
}


你可能感兴趣的:(面向对象 成员变量 匿名对象)