面向对象思想基础

OO 面向对象    object oriented
面向对象:我这个东西是什么东西完成的,参加完成的东西就是对象。
对象:基本数据类能定义的对象就不是面向对象的对象  如果不能用基本数据类型定义的就是面向对象的对象。
属性:指的是对象身上有什么值数据,每一个对象,类都有自己的属性和行为  特征=属性
行为:对象可以做什么,或者我们想用这些对象做什么。行为=方法
面向过程:做一件事情的具体过程。就问题解决问题。
万物皆对象,对象因关注而产生。
类是对象的抽象,对象是类的实例。
类和对象的关系
1:类是具有相同属性和行为的一组对象的抽象。
2:在软件系统中,我们用类来模拟现实生活中的实体。
3:类是模板,不能被直接使用,而对象是具体纯在的,所以对象又被称之为类的实例。
4:通过类的产生对象的动作被称之为“实例化”
操作对象(属性和行为)
对象加“.”操作符
“.”:这个符号理解成为“的”
student stu=new student();
stu.age(age年龄)理解成为:这个学生的年龄

在面向对象中,static是一种特殊情况,百分之90的方法都是没有static的
java基础是为了避开面向对象的概念。从现在开始,知道学习了static之前不写。
书写java类
java中的类用class声明,Java源代码文件中只能包含一个公共类,文件名必须与公共类的类名相同,文件扩展名为“.java”
属性是类身上的值数据。其形式就是变量和常量的属性
变量属性:声明语法采用的是变量的语法,只是比之前的普通变量多了一个访问修饰符
在效果上该类的对象都会具备该属性,但是个个对象可以有不同的值。
常量属性:声明语法采用的是常量的语法,只是比之前的普通常量多了一个访问修饰符  final 数据类型 常量名(全部大写)。
在效果上该类的对象都会具备该属性,只是值都一样且不能更改。
面向对象的类中 数据类型比基本数据类型复杂,他由属性和行为组成,属性可以是多个,而且各有各的数据类型。
定义类的本质就是定义一种数据类型--复杂的引用类型
面向对象的数据类型是引用数据类型,是程序员自己定义的列如:student stu=new student();
student stu---只会在产生一个4字节的变量空间
stu变量存放即将指向真正的student对象的应用,被称为“对象名称空间”
new student()--这个才能产生一个student对象
该对象具备一个整体空间存放各个属性,此空间的大小由对象身上的属性大小总和决定--student的大小决定。

new的对象为基本数据类型的初始值为0,引用数据类型的初始值为unll。
对象的销毁时由java中的垃圾回收机制(gc:garbage collection)来完成的
它有其自身的算法规则,程序员是无法通过代码控制的。
在垃圾回收的众多算法中有一天基本规则,它会主动回收没有引用指向的对象
所以
1:如果想要一个程序被回收,我们可以主动把他指向的引用赋值为null。
NullPointerException:空指针异常。stu2=null;   int x=stu2.age;
system.out.println(x);报错。
2:如果对象的引用变量时(对象名空间)是一个局部变量,那么当它所属的模块结束,这个变量的生命周期就到头了,变量消失,他所指的对象也就没有引用指向了,也会被回收。
3:程序员在代码级别只有一句代码可以和垃圾回收之间产生交集,这句代码时System.gc();
这句代码的作用不是调用垃圾回收,不是召唤垃圾回收,但是垃圾回收收不收是他自己决定。
4:如果一个对象只用一次,那么可以不给该对象起变量名,new出来就可以直接使用。用完之后由于没有引用,就会被回收。
访问修饰符有3个关键字,4种情况。
现在我们掌握2中
public(公共的)修饰的属性和方法,可以在任意地方使用
private(私有的)修饰的属性和方法,可以在本类使用
变量属性基于java的官方规范,因该定义为private,然后提供get/set方法,让外部操作取值和赋值
get方法被称之为:访问器
set方法被称之为:修改器
2者在格式和命名上,都有标准规范
当全局变量(属性)和局部变量重名时,会默认使用局部变量。
在这种情况下,要特指全局变量(当前对象)需要在全局变量前面+“this.”操作,相当于自我介绍,明确当前对象
this的好处
1:提高开发效率
2:
 
 
 
oop    面向对象编程    programming
ooa    面向对象分析    analysis
ood    面向对象设计    design

最开始是面向过程----面向对象

猜你喜欢

转载自www.cnblogs.com/caohua95/p/11593408.html