面向对象概述

一、面向对象思想介绍

1、概述:就是编程思想

2、面向过程和面向对象

(1)面向过程:强调做事情的基本步骤,强调解决问题的方式,面向对象是基于面向过程的

(2)面向对象:强调的是做事情的主体,更强调谁来解决问题,更强调的是数据,强调的是谁拥

有数据和操作数据的权利

3、举例

(1)面向过程:洗衣服:拿盆,放脏衣服,加水,倒洗衣粉,泡,揉一揉,搓一搓,漂一漂,拧

干,晾晒,穿

(2)面向对象:找到洗衣机,洗衣机洗衣服,穿衣服

4、面向对象的好处:

(1)更符合现代人的习惯:方便,凡事喜欢找对象,而不是找人,找方法

(2)复杂问题简单化

(3)由执行者变成了指挥者

5、面向对象的特点:

(1)封装

(2)继承

(3)多态

二、类和对象

(一)类和对象的比较

1、类:类型,对具体事物的一些抽象认识,概括的是一类事物共性的属性和行为。类:是一个抽

象的概念,并非真实存在。

2、对象:一个真实存在的事物,是属性和行为的具体体现,是属性的载体,是行为的执行者。

(二)类的说明

1、类就是定义了一组属性和行为的集合

2、格式

class 类名{}

3、属性:对象事物特征的描述,一般是变量

Java中属性其实就是一个变量,只不过定义的位置发生了变化,现在定义再类中方法外,又叫做成

员变量

4、行为:对事物功能的描述,是方法

Java中功能实际上就是方法,和以前定义的位置一样,只是曾经写为public static,现在去掉static

5、举例:

人类

属性【成员变量】:姓名、年龄、性别

行为【成员方法】:吃饭、睡觉、学习

6、说明

(1)自定义类型再编译之后,会生成一个独立的.class文件

(2)在.java文件中,可以定义多个类,但是只能有一个public class,每一个类编译之后都会生成

一个.class文件

(三)对象的创建和使用

1、对象:是一个实实在在的个体,是属性的载体,是行为的执行者

2、创建对象的格式

类名 对象名=new 类名();

3、说明

(1)类名:创建的是哪个类的对象,就写那个类的类名

(2)对象名:就是一个变量名,小驼峰原则

(3)=:对象是引用数据类型,就是将右侧对象的地址值赋值给变量名

(4)new:只要一看到new,就在堆内存中开辟空间,创建真正的对象

(5)注意:目前为止,赋值符号左右的类名保持一致

(6)():目前里面什么都不写

4、对象访问属性的格式

(1)访问:对象名.属性名

(2)修改:对象名.属性名 = 属性值

5、访问方法:对象名.方法名(实参列表);

三、创建对象的内存理解

(一)创建两个对象的内存理解

1、创建对象的步骤

(1)将要创建的对象所属的类型的字节码文件加载到方法区

(2)在栈内存中创建对象的引用,将来用于存储对象的地址值

(3)在堆内存中开辟一块空间,为成员变量的创建以及存储了默认值

(4)将对象的地址值赋值给对象名称指代的空间内

2、注意事项

(1)第一次使用某个类型的时候,会将这个类型的字节码文件加载到方法区,第二次使用的时候

 就不需要再加载了,一般情况下,一个类只加载一次

(2)在创建对象的过程中,对象内部默认隐含一份所属类型的字节码文件的地址,将来可以通过

这个地址找到所属类型

(3)每一个对象都具有一份类的成员变量

(4)每次使用new关键字,都会在堆内存中开辟一块全新的空间,这意味着是不同的对象,具有

不同的地址

四、面向对象中的其它内容

(一)成员变量和局部变量

1、成员变量:是一个变量,定义在类中方法外,属于类的成员

2、局部变量:是一个变量,定义在方法中,属于方法的成员,对于类而言,方法只是一个部分,

所以是局部。

3、不同点:

(1)代码层面:定义位置不同

成员变量:定义在类中方法外

局部变量:定义在方法中

(2)内存层面不同:内存空间不同

成员变量:随着对象创建在堆内存中

局部变量:随着方法创建在栈内存中

(3)内存层面:内存时间不同,生命周期不同

成员变量:属于对象,随着对象的创建而创建,随着对象的消亡而消亡

局部变量:属于方法,随着方法的进栈而创建,随着方法的消亡而消亡

(4)初始化状态不同

成员变量:具有默认值

局部变量:没有默认值,必须先赋值后调用

(二)方法的形式参数是引用数据类型

1、变量的访问原则:就近原则

(1)变量的定义(声明):变量名称带有数据类型

(2)变量的访问(调用):只有变量名称没有数据类型

(3)就近原则:当变量被访问的时候,会先在最近的一对大括号中寻找,如果没有找到就出当前

大括号再去外面进行寻找

2、当方法的形式参数是引用数据类型的时候,传递到实际上是引用数据类型的地址值,就变成了

对各引用指向同一个对象,当有一个引用修改了对象中的属性值,其它的引用也是被修改之后的内

3、引用数据类型传递的本质,是传递地址值

(三)方法的返回值是引用数据类型

1、方法的返回值类型,可以是基本数据类型也可以是引用数据类型

2、方法的返回值类型是基本数据类型的时候,返回的是数值,是引用数据类型的时候,返回的是

地址值

六、Random

1、概述:用于生成伪随机数流

2、常用方法

(1)nextDouble():生成一个0.0到1.0之间的随机数,不包含1.0

(2)nextInt(int n):生成一个0到指定参数的随机数,不包含指定参数

七、Scanner

1、概述:简单文本扫描器

2、常用方法

(1)nextLine():扫描当前行的所有信息

(2)nextInt():扫描当前的一个数字,不能使用空格隔开

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值