Java编程 javase03

一、面向对象

1、面向对象概述

(1)面向对象与面向过程的区别

面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲历亲为,详细处理每一个细节。强调步骤。

面向对象:当需要实现一个功能的时候,不管心具体的步骤,而是找一个已经具有该功能的人帮我做事。强调对象。

                                                                                                    例子:遍历数组

生活举例:手洗衣服(面向过程) 自动洗衣机(面向对像)

(2)面向对象的三个特征

封装、继承、多态

2、对象和类

(1)类

:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。

属性:就是该事物的状态信息

行为:就是该事物能做什么

举例:小猫

属性:名字、体重、年龄、颜色

行为:走、跑、叫、卖萌

(2)对象:是一类事物的具体表现。对象是类的一个实例,必然具备该类事物的属性和行为。

举例:一只小猫

属性:Tom 、5kg、2岁、黄色

行为:喜欢卖萌、喜欢吃小鱼干、喵喵叫

(3)类与对象的关系

类是对一类事物的描述,是抽象的。

对象是一类事物的实例,是具体的。

类是对象的模板,对象是类的实体。

二、类与对象

1、类的定义

(1)学生举例

(2)注意事项

a、成员变量是直接定义在类当中的,在方法外面

 b、成员方法不要写static关键字

c、通常情况下一个类不能直接使用,需要根据类创建一个对象,才能使用

2、对象

(1)对象的使用

01、导包:也就是需要指出需要使用的类,在什么位置

import 包名称、类名称

对于当前类属于同一个包的情况,可以省略导包语句不写

02、创建

格式:

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

03、使用,分为两种情况

使用成员变量:对象名.成员变量名

使用成员方法:对象名.成员方法名(参数)

(也就是,想用谁,就用对象名点谁)

注意事项:

如果成员变量没有进行复制,那么将会有一个默认值,规则和数组一样。(字符串为null、数字为0)

练习:手机练习

(2)对象对内存图的使用(黑色的x代表出栈,当main方法结束时出栈,所有占用的内存得到释放。

01、一个对象对内存的使用

 

02、两个对象使用一个方法的内存图

两个对象未产生任何联系

03、两个引用指向同一对象的内存图

加一句Phone two=one(将one的地址发送给two)

(3)对象在方法中的使用

01、使用对象类型作为方法的参数(实际传输的是地址值

内存使用图

 02、使用对象类型作为方法的返回值(实际传输的是地址值

内存使用图

(4)成员变量和局部变量的区别

01、定义位置不一样

局部变量:在方法的内部

成员变量:在方法的外部写在类中

02、作用范围不一样

局部变量:只有在方法当中可以使用;出了方法就不能再使用

成员变量:整个类都可以使用

03、默认值不一样

局部变量:没有默认值,如果想要使用,必须手动进行赋值

成员变量:如果没有赋值,会有默认值,规则和数组相同

04、内存的位置不一样(了解)

局部变量:栈内存

成员变量:堆内存

05、生命周期不一样(了解)

局部变量:随着方法进栈而诞生,随着方法出栈而消失

成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失

注意事项:1、方法的参数就是局部变量

                   2、参数在方法的调用中必然会被赋值

                   3、前三点必须掌握

(5)面向对象的封装性

01、三大特征:封装、继承、多态

02、封装在java当中的体现:

1、方法就是一种封装

2、关键字private也是一种封装

封装就是将一些信息隐藏起来,对于外界并不可见

03、private关键字的作用及使用

1、作用:将需要保护的成员变量进行修饰

注意:一旦使用了private进行修饰,那么本类当中仍然可以随意访问。但是!超出了本类范围之外就不能直接访问。

2、成员变量的设置格式:

public void set成员变量(首字母大写)(数据类型 参数名称){

                       方法体  ;

        }

注意事项:

  • 间接访问private设置,就是定义一对Getter/Setter方法
  •  必须叫setxxx或者getxx命名规则。
  •   对于Getter来说,不能有参数,返回值类型和成员变量对应。
  •   对于Setter来说,不能有返回值,返回值类型和成员变量对应。
  •   对于基本类型的boolean值,Getter类型应写成isxx形式,而setxxx规则不变。

练习:学生案例

04、this关键字的作用及使用

  •  当方法的局部变量和类的成员变量重名的时候,根据就近原则,优先使用局部   变量。如果需要访问本类当中的成员变量,需要使用this关键字。
  • 格式:
  • this.成员变量名。
  •  通过谁调用的方法,谁就是this。

(5)构造方法

定义:构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。

格式:

public  类名称(参数类型 参数名称){

                 方法体:

}

注意事项:

1、构造方法的名称必须和所在的类名称完全一样,就连大小也要一样

2、构造方法不要写返回值类型,连void都不写

3、构造方法不能return一个具体的返回值

4、如果没有编写任何构造方法,那么编译器将会默认赠送一个构造方法,没有参数,方法什么具体的事情都不做。

5、构造方法的调用实际就是new 对象的使用。

6、一旦编写了至少一个构造方法,那麽编译器将不再赠送。

7、构造方法可以进行重载。

8、如果需要改变对象当中的成员变量数据内容,仍需要使用Setter方法。

 (6)定义一个标准的类

一个标准的类通常要拥有下面四个组成部分

01、所有的成员变量都需要使用private关键字修饰

02、为每一个成员变量编写一对儿Getter/Setter方法

03、编写 一个无参数的构造方法

04、编写一个全参数的构造方法。

  • 可以使用code中的generate选择getter/setter生成
  • construct 生成无参数和全参数的构造方法。

 

            

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值