黑马程序员_第四天总结

来源:互联网 发布:java获取ip和端口号 编辑:程序博客网 时间:2024/04/29 04:11

------- android培训、java培训、期待与您交流! ----------

面向对象:
面相对象概念
类与对象的关系
封装
构造函数
this关键字
static关键字
单例设计模式


面对对象概念:
理解面向对象
面向对象的特点


理解面向对象:
面向对象是相对面向过程而言
面向对象和面向过程都是一种思想
面向过程:
强调的是功能行为
面向对象
将功能封装进对象,强调具备了功能的对象。


面向对象是基于面向过程的。
---------------------------------------------------------------------------------------------------
面向对象的特点:
是一种符合人们思考习惯的思想
可以将复杂的事情简单化
将程序员从执行者,转换成了指挥者
完成需求时:
先要去找具有所需的功能的对象来用。
如果该对象不存在,那么创建一个具有所需功能的对象。
这样简化开发并提高复用。


面向对象开发,设计,特征
开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情。
设计的过程:其实就是在管理和维护对象之间的关系。
面向对象的特征:
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
---------------------------------------------------------------------------------------------------
类与对象的关系
使用计算机就是不断的在描述现实生活中的事物。
java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。
对象即是该类事物实实在在存在的个体。


类与对象的关系可以理解为:
对于同一类事物可以抽取它们的共性的内容,定义在类中。
如生活中的汽车,每一台车都有轮胎数和颜色。
那么在通过java描述汽车这类事物时,就可以将这两个共性属性作为类中的属性进行定义。
通过该类建立的每一个汽车实体都具有该属性,并可以有对象特有的属性值。
类就是图纸,汽车就是堆内存中的对象
---------------------------------------------------------------------------------------------------
类的定义:
生活中描述事物无非就是描述事物的属性和行为。
如:人有身高,体重等属性,有说话,打球等行为。
java中用类class描述事物也是如此
属性:对应类中的成员变量。
行为:对应类中的成员函数。
定义类其实在定义类中的成员(成员变量和成员函数)


成员变量和局部变量的区别:
成员变量:
成员变量定义在类中,在整个类中都可以访问。
成员变量随着对象的建立而建立,存在于对象所在的堆内存中。
成员变量有默认初始化值。


局部变量:
局部变量只定义在局部范围内,如:函数内,语句内等。
局部变量存在与栈内存中。
作用的范围结束,变量空间会自动释放。
局部变量没有默认初始化值。
---------------------------------------------------------------------------------------------------
创建对象,使用对象:
class Car//对Car这类事物进行描述
{
String color = "red";
int num = 4;
void show()
{
System.out.println("color="+color+"..num="+num);
}
}
class CarDemo 
{
public static void main(String[] args) 
{
Car c = new Car();//建立对象
c.color = "black";//对对象的属性进行修改
c.show();//使用对象的功能。
}
}


对象内存结构:
只要是用new操作符定义的实体就在会堆内存中开辟一个新的空间。
并每一个对象中都有一份属于自己的属性。
通过 对象.对象成员 的方式操作对象中的成员,
对其中一个对象的成员进行了修改。和另一个对象没有关系。
---------------------------------------------------------------------------------------------------
匿名对象:
匿名对象是对象的简化形式
匿名对象两种使用情况:
当对对象方法仅进行一次调用的时候。
匿名对象可以作为实际参数进行传递。
---------------------------------------------------------------------------------------------------
封装(Encapsulation):
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:
将变化隔离。
便于使用。
提高重用性。
提高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。


private(私有)关键字:
private关键字:
是一个权限修饰符。
用于修饰成员(成员变量和成员函数)
被私有化的成员只在本类中有效。
常用之一:
将成员变量私有化,对外提供对应的set , get方法对其进行访问。提高对数据访问的安全性。
---------------------------------------------------------------------------------------------------
构造函数:
特点:
1,函数名与类名相同。
2,不用定义返回值类型。
3,不可以写return语句
作用:
给对象进行初始化。
注意:
1,默认构造函数的特点。
2,多个构造函数是以重载的形式存在的。
---------------------------------------------------------------------------------------------------
构造代码块:
作用:给对象进行初始化。
对象一建立就运行,而且优先于构造函数执行。
和构造函数的区别:
构造代码块是给所有对象进行统一初始化,构造代码块:{}  构造函数各自对应对象:例如:Person()   Person(String name)
而构造函数是给对应的对象初始化。


构造代码快中定义的是不同对象共性的初始化内容。
---------------------------------------------------------------------------------------------------
this关键字:
特点:
this代表其所在函数所属对象的引用。(这个函数属于堆内存的哪个实例对象)
换言之:this代表本类对象的引用。
什么时候使用this关键字呢?
当在函数内需要用到调用该函数的对象时,就用this。


this语句 :用于构造函数之间进行互相调用。
this语句只能定义在构造函数的第一行。因为初始化要先执行。
---------------------------------------------------------------------------------------------------
static(静态)关键字:
static关键字:
用于修饰成员(成员变量和成员函数)
被修饰后的成员具备以下特点:
随着类的加载而加载。(类加载进内存后才能实例化对象)
优先于对象存在。
被所有对象所共享。
可以直接被类名调用。
使用注意:
静态方法只能访问静态成员。
静态方法中不可以写this,super关键字。(静态加载进内存,还没有对象存在)
主函数是静态的。

原创粉丝点击