java面向对象编程

java面向对象编程

面向对象:围绕的是我这个软件是由那部分完成的,或者是那些对象来做的。面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递(把程序封装集合到一起)。

面向过程:按步骤完成,每一步就是一个过程。面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度(自我以为面向过程就是我们平时的自顶向下的编程方式)。

面向对象解决方案

1.找对象:对象可以是问题域中出现的任何人,事物或者实体,简单点说就是“东西”。

2.找到解决问题域的对象后,我们就要编写类来描述每个对象的属性和行为。

每个类都有属性和行为,属性是值对象身上有什么值数据,行为是对象可以做什么,或者我们想让对象做什么

编码:编写类-》(产生)-》对象-》(调用)-》(操作对象)

万物皆对象,对象因为关注而产生

类是对象的抽象,对象是类的实例。

类是具有相同属性和行为的一组对象的抽象。

变量属性:声明语法采用的是变量语法,只是比之前的普通变量多了一个访问修饰符。

编写类

java中的类用关键字class声明,文件名必须与公用类的的类名相同。

变量属性:声明语法采用的是变量的语法,只是比之前的普通变量多了一个访问修饰符。

在效果上,该类所有的对象都会自动具备该属性,但是各个对象可以有各自不同的值

常量属性:声明语法采用的是常量的语法,只是比之前的普通变量多了一个修饰符。

在效果上,该类所有的对象都会自动具备该属性,只是值都一样且不能更改

行为:在语法表象上,就是方法的定义

它是类的组成部分,表示对象能够做什么事情或提供什么功能

在面向对象中,static是一种特殊情况,90%的方法都是没有static的。

对象的创建

使用new关键字,后面跟上类名()

###   类和对象的关系:

类是模板,不能直接使用,对象是类的实例

通过类产生对象的动作被称之为“实例化”

对象操作属性和方法

对象名.属性名 = 值;

对象名.方法(参数列表);

对象的销毁

对象的销毁是由java中的垃圾回收机制来完成

他有自身的算法规则,但是我们没有办法通过代码控制回收机制什么时候回收,回收谁。

在垃圾回收机制中的众多算法中有一个基本规则,他会主动回收没有引用指向的对象。

1.如果像让某个对象在程序途中被回收,那么我们可以主动把他指向的引用赋值为null。

2.如果对象的引用变量时(对象名空间)是个局部变量那么当他所属的模块执行结束,那么这个变量的生命周期就到头了,变量会消失,那么他所指向的对象就没有引用指向了,也会被回收。

3.程序员在代码级别只有一句代码可以和垃圾回收之间产生交集, System.gc();注意这句代码的作用不是主动调用垃圾回收,而是召唤垃圾回收,但是垃圾回收机制想不想收,什么时候收,还是由他自身的算法决定。

如果一个对象值用一次,那么可以不给该对象起名字,new出来就直接使用,用完过后由于没有引用,就会被回收。

属性修饰符

public 公有的   在本类中访问 在同包的其他类或子类中访问 在其他包的其他类或子类中访问

private 私有的  在本类中访问,在同包的其他类或者子类中不能访问,在其他包的其他类或子类中不能访问

protected 受保护的 在本类中访问,在同包的其他类或者子类中可以访问,在其他包的其他类或子类中不能访问

变量属性属于java的官方规范,应该定义为private,然后提供get/set方法,让外部操作取值/赋值

get方法  访问器

set方法  修改器

两者在格式和命名上都有标准规范。

当全局变量和局部变量重名时,会默认使用局部变量。在这种情况下,要特指全局变量,(当前类的对象),需要在全局变量前面加.this操作。此时的this相当于生活中每个对象说的我,指的是当前对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值