您的位置:首页 > 职场人生

黑马程序员_面向对象与类的分析

2015-04-14 18:00 239 查看
一、面向对象的概述:

java是一种面向对象的编程语言,也就是说对象是这种语言的基础,没有对象了,就没有了java。任何功能都是通过对象来实现的,就是将功能封装进对 象,让对象去调用这些功能。这种思想是将数据作为第一位,而方法(功能或者说是算法)作为其次。我个人认为,这是对数据的一种优化,安全性更高,操作起数据来一更方便。

那么将这种思想提升到一种境界就是:万物皆对象。

1、对面向对象的理解:

1)面向对象是相对面向过程而言的,且基于面向过程的。

2)面向对象是一种思想。

3)面向对象将功能封装进对象中,强调了具备功能的对象,主体是对象,将过程简化

4)在实际开发中,以对象为核心,先明确好对象,在实现具体功能,或者可是使用已有的对象。

5)面向对象的三个特征:封装性,继承性,多态性。

二、类与对象概述

1、类(class):可以理解为是构造对象的一个蓝图或者模板,是抽象的概念;反过来说,对象是以类为模型创造的具体实例,是对类的一种具体化、形象化。

类:对生活中事物的描述

对象:对类的具体实现,是实实在在存在的实体。

类就是对象的描述。
对象就是存在的可以被操作的实体。

需求:描述一个汽车。
描述两方面:属性,行为。
属性:轮胎数。颜色。
行为:运行。

其实类中定义的都是成员:
成员变量-----属性。
成员函数-----行为。

[java] view plaincopy




class Car

{

//1,描述属性。

int num;

String color;

void run()

{

System.out.println(num+"::"+color);

}

}

//描述实物的目的就是为了创建实体。

class CarDemo

{

public static void main(String[] args)

{

//创建Car的实体对象。

new Car();

}

}

2.匿名对象

[java] view plaincopy




class CarDemo

{

public static void main(String[] args)

{

//创建对象。

Car c = new Car();

// c.num= 4;

// c.color = "red";

// c.run();

Car c1 = new Car();

// c1.num = 4;

// c1.color = "red";

// c1.run();

show(c);

show(c1);

/*

匿名对象。

Car c = new Car();

c.run();

简化成:

new Car().run();

创建对象只为调用一次方法,可以使用匿名对象完成。

匿名对象可以作为实参传递。

Car c = new Car();

c.num = 4;

c.color = "red";

c.run();

new Car().num = 5;

new Car().color = "blue";

new Car().run();

*/

show(new Car());

}

public static void show(Car c)

{

c.num = 3;

c.color = "black";

c.run();

}

3.面向对象-成员变量和局部变量的区别

[java] view plaincopy




/*

1,源代码的位置:

成员变量定义在类中,该变量在整个类访问有效。

局部变量定义在方法中,该变量只在方法内有效。

2,内存中的位置:

成员变量在堆内存的对象中存储。成员变量所属于对象。

局部变量在栈内存的方法中存储。局部变量所属于方法。

3,初始化。

成员变量都有默认的初始化。根据类型不同初始化值不同。

局部变量没有默认初始化。使用时,必须初始化才可以用。

*/

4.面向对象-封装和私有化及封装的好处

[java] view plaincopy




/*

封装:隐藏实现细节,对外提供公共的访问方式。

1,安全性。

2,复用性。

3,隔离的变化。后期应用于分层设计。

*/

/*

描述人:

属性:姓名,年龄。

行为:说话。

*/

class Person

{

private String name;

private/*私有*/ int age;

/*

将成员变量私有化,对外提供set get方法,对其访问的原因就是可以属性可控。

私有关键字private 是一个权限修饰符,只能修饰成员(成员变量,成员函数)。

注意:私有仅仅是封装的表现形式之一!

*/

public void setName(String s)

{

name = s;

}

public String getName()

{

return name;

}

public void setAge(int a)

{

/*可以加入健壮性的判断。

if(a<=0 || a>120)

throw

*/

age = a;

}

public int getAge()

{

return age;

}

void speak()

{

System.out.println(name+":"+age);

}

}

class PersonDemo

{

public static void main(String[] args)

{

Person p = new Person();

// p.name = "东邪";

// p.age = -20;

p.setName("东邪");

p.setAge(20);

p.speak();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: