黑马程序员_面向对象与类的分析
2015-04-14 18:00
239 查看
一、面向对象的概述:
java是一种面向对象的编程语言,也就是说对象是这种语言的基础,没有对象了,就没有了java。任何功能都是通过对象来实现的,就是将功能封装进对 象,让对象去调用这些功能。这种思想是将数据作为第一位,而方法(功能或者说是算法)作为其次。我个人认为,这是对数据的一种优化,安全性更高,操作起数据来一更方便。
那么将这种思想提升到一种境界就是:万物皆对象。
1、对面向对象的理解:
1)面向对象是相对面向过程而言的,且基于面向过程的。
2)面向对象是一种思想。
3)面向对象将功能封装进对象中,强调了具备功能的对象,主体是对象,将过程简化
4)在实际开发中,以对象为核心,先明确好对象,在实现具体功能,或者可是使用已有的对象。
5)面向对象的三个特征:封装性,继承性,多态性。
二、类与对象概述
1、类(class):可以理解为是构造对象的一个蓝图或者模板,是抽象的概念;反过来说,对象是以类为模型创造的具体实例,是对类的一种具体化、形象化。
类:对生活中事物的描述
对象:对类的具体实现,是实实在在存在的实体。
类就是对象的描述。
对象就是存在的可以被操作的实体。
需求:描述一个汽车。
描述两方面:属性,行为。
属性:轮胎数。颜色。
行为:运行。
其实类中定义的都是成员:
成员变量-----属性。
成员函数-----行为。
[java] view plaincopy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
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
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
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
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
/*
1,源代码的位置:
成员变量定义在类中,该变量在整个类访问有效。
局部变量定义在方法中,该变量只在方法内有效。
2,内存中的位置:
成员变量在堆内存的对象中存储。成员变量所属于对象。
局部变量在栈内存的方法中存储。局部变量所属于方法。
3,初始化。
成员变量都有默认的初始化。根据类型不同初始化值不同。
局部变量没有默认初始化。使用时,必须初始化才可以用。
*/
4.面向对象-封装和私有化及封装的好处
[java] view plaincopy
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
/*
封装:隐藏实现细节,对外提供公共的访问方式。
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();
}
}
java是一种面向对象的编程语言,也就是说对象是这种语言的基础,没有对象了,就没有了java。任何功能都是通过对象来实现的,就是将功能封装进对 象,让对象去调用这些功能。这种思想是将数据作为第一位,而方法(功能或者说是算法)作为其次。我个人认为,这是对数据的一种优化,安全性更高,操作起数据来一更方便。
那么将这种思想提升到一种境界就是:万物皆对象。
1、对面向对象的理解:
1)面向对象是相对面向过程而言的,且基于面向过程的。
2)面向对象是一种思想。
3)面向对象将功能封装进对象中,强调了具备功能的对象,主体是对象,将过程简化
4)在实际开发中,以对象为核心,先明确好对象,在实现具体功能,或者可是使用已有的对象。
5)面向对象的三个特征:封装性,继承性,多态性。
二、类与对象概述
1、类(class):可以理解为是构造对象的一个蓝图或者模板,是抽象的概念;反过来说,对象是以类为模型创造的具体实例,是对类的一种具体化、形象化。
类:对生活中事物的描述
对象:对类的具体实现,是实实在在存在的实体。
类就是对象的描述。
对象就是存在的可以被操作的实体。
需求:描述一个汽车。
描述两方面:属性,行为。
属性:轮胎数。颜色。
行为:运行。
其实类中定义的都是成员:
成员变量-----属性。
成员函数-----行为。
[java] view plaincopy
![](https://code.csdn.net/assets/CODE_ico.png)
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
![](https://code.csdn.net/assets/CODE_ico.png)
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
![](https://code.csdn.net/assets/CODE_ico.png)
/*
1,源代码的位置:
成员变量定义在类中,该变量在整个类访问有效。
局部变量定义在方法中,该变量只在方法内有效。
2,内存中的位置:
成员变量在堆内存的对象中存储。成员变量所属于对象。
局部变量在栈内存的方法中存储。局部变量所属于方法。
3,初始化。
成员变量都有默认的初始化。根据类型不同初始化值不同。
局部变量没有默认初始化。使用时,必须初始化才可以用。
*/
4.面向对象-封装和私有化及封装的好处
[java] view plaincopy
![](https://code.csdn.net/assets/CODE_ico.png)
/*
封装:隐藏实现细节,对外提供公共的访问方式。
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();
}
}
相关文章推荐
- 黑马程序员-java面向对象问题分析
- 黑马程序员-----面向对象实例分析
- 黑马程序员__用面向对象思想分析问题小结
- 黑马程序员 面向对象的分析与设计
- 黑马程序员-----java入门一DAY10------类的设计分析 面向对象多态 构造代码块
- 黑马程序员——Java基础---面向对象及其一些代码内部结构分析
- 黑马程序员_面向对象思想分析与设计
- 黑马程序员---面向对象主要特性分析
- 黑马程序员——Java基础:面向对象一些概念的区分(二)
- js面向对象学习笔记之九(BOM 与 DOM 中常用属性分析)
- [译]OOSE第4章:面向对象系统的研发 4.3 面向对象的分析
- 面向对象分析设计-------01基础
- 黑马程序员_面向对象
- 黑马程序员_Java面向对象上
- 黑马程序员-面向对象-07天-4 (super,this)
- 黑马程序员—OC—面向对象(二)
- 软件工程读书笔记(7)——第七章 面向对象分析
- 面向对象需求分析——用例图和活动图
- 面向对象分析和设计(第3版)读书笔记 - 认识 OO
- 黑马程序员_面向对象_多态