黑马程序员——java 基础--面向对象,黑马java
黑马程序员——java 基础--面向对象,黑马java
------- android培训、java培训、期待与您交流! ----------
一、Java 面向对象
1.面向对象概念
面向对象是相对于面向过程而言,面向对象和面向过程都是一种思想。
(1)面向过程:
强调的是功能行为。代表语言:C语言。
(2)面向对象:
将功能封装进对象,强调了具备功能的对象。代表语言:Java,C++,C#。
区别:面向过程是一件事情“该怎么做”,面向对象是一件事“该让谁来做”,然后那个“谁”就是对象,他要怎么做是他自己的事情,反正最后一群对象合力能把事情做好就行了。
2.面向对象的特点
是一种符合人们思考习惯的思想,可以将复杂的事情简单化,将程序员从执行者转换成了指挥者。完成需求时:
(1)先要去找具有所需功能的对象来用。
(2)若果该对象不存在,那么创建一个具有所需功能的对象。
(3)这样可以简化开发并提高复用。
3.面向对象的开发、设计、特征
开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情。
设计过程:其实就是在管理和维护对象之间的关系。
面向对象特征(特点):
(1)封装(encapsulation)
(2)继承(inheritance)
(3)多态(polymorphism)
二、类与对象之间关系
使用计算机语言就是在不断描述现实生活中的事物。java中描述事物通过类的形式体现。
对象即是该类事物实实在在地存在的个体。
1.类与对象的关系(图例)
可以理解为:类就是图纸,汽车就是堆内存中的对象。
2.类的定义
(1)生活中描述事物无非是描述事物的属性和行为。如:人有身高,体重,年龄等属性,有走路,吃饭等行为。
(2)Java中用类class来描述事物也是如此
属性:对应类中的成员变量。
行为:对应类中的成员函数。
(3)定义类其实就是在定义类中的成员(成员变量和成员函数)
3.成员变量和局部变量的区别
成员变量:
(1)成员变量定义在类中,整个类中都可以被访问。
(2)成员变量随着对象的建立而建立,随着对象的消失而消失,保存在堆内存中。
(3)成员变量有默认初始化值。
局部变量:
(1)局部变量局部范围内,如:函数,语句中。
(2)局部变量存在于栈内存中,作用范围结束,变量空间自动释放。
(3)局部变量没有默认初始化值。
4、创建和使用对象
class Car
{
String color = "red";//描述颜色
int num = 4;//描述轮胎数
void run()//运行行为。
{
System.out.println(color+".."+num);
}
}
class CarDemo
{
public static void main(String[] args)
{
//生产汽车。在java中通过new操作符来完成其实就是在堆内存产生一个实体。
Car c = new Car();//c就是一个类类型变量。记住:类类型变量指向对象。
c.color = "blue";//对对象的属性进行修改,改为蓝色。
c.run();//使用对象的功能
}
}
5.对象内存结构
内存结构示意图:由上图可知,每用new新建一个实体对象时,堆内存都会为新实体对象开辟新的空间,且每一对象都有一份属于自己的属性。
当改变其中一个对象的属性时(C1颜色由红变蓝),其他对象相应的属性不会发生改变(C2颜色不变)。
6.匿名对象
匿名对象是对象的一种简化形式。
匿名对象使用两种情况:
(1)当对对象方法仅进行一次调用时。
(2)匿名对象可以作为实际参数进行传递。
示例:
//匿名对象是没有别其它对象所引用,使用一次就变成垃圾了,然后被垃圾回收器收回。
public class People
{
String name = "张三";
int age = 20;
public void run()
{
System.out.println(name+":"+age);
}
public static void show(People p)
{
p.name = "李四";
p.age = 25;
p.run();
}
public static void main(String[] args)
{
//当对对象方法仅进行一次调用时
new People().run();
//将匿名对象作为实际参数进行传递
show(new People());
}
}
相关文章
- 暂无相关文章
用户点评