Java基础知识_day07_(面向对象,构造方法,封装,成员变量与局部变量)
博客专区 > Sunmos 的博客 > 博客详情
Java基础知识_day07_(面向对象,构造方法,封装,成员变量与局部变量)
Sunmos 发表于9个月前
Java基础知识_day07_(面向对象,构造方法,封装,成员变量与局部变量)
  • 发表于 9个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

内容概要:

  • 面向对象思想
  • 面向对象特性-封装
  • 构造方法
  • 类名作为形式参数及返回值

1. 面向对象思想

面向过程和面向对象思想:

a). 面向过程:自己实际的解决问题;
b). 面向对象:找一个对象,来解决问题;
c). 面向对象是基于面向过程的编程思想.

面向对象思想特点:

a). 是一种更符合我们思考习惯的思想;
b). 可以将复杂的事情简单化;
c). 将我们从执行者转变为了指挥者.

类与对象: Java语言的基本单位是类

a). 属性:事物的描述信息(名词)
b). 行为(功能):事物能够做什么(动词)
c). 类:是一组相关的属性和行为的集合(描述生活中事物)
d). 对象:是该事物的具体体现

类的定义: 描述现实世界的事物

事物:
  属性:事物的描述信息
  行为:事物的功能
类:
  成员变量:就是事物的属性
    定义在类中方法外
    初始化值:可以不给初始化值
  成员方法:就是事物的功能
    没有static关键字
  使用类:就是使用该类的成员(成员变量和成员方法).
  创建类:
    格式:类名 对象名 = new 类名();
  实例对象访问成员:
    访问成员变量:对象名.变量名;
    访问成员方法:对象名.方法名(…);
  测试类:主方法不要放在具体的类中,单独创建一个测试类
     测试类用于测试其他的类.具体的类中不要主方法.

2. 面向对象特性-封装

封装原则:

把不需要对外提供的内容隐藏起来;
对外隐藏实现细节,提供公共的访问方式;
成员变量私有化(private修饰),提供getXxx()和setXxx()方法方式的访问.

封装好处:

通过成员方法来控制对成员变量的访问,提高代码的安全性;
将代码使用方法进行封装,提高代码的复用性.

成员变量和局部变量的区别:

在类中位置不同:成员变量在类中方法外,局部变量在方法中或方法声明上;
在内存中的位置不同:成员变量在内存中的堆内存,局部变量只能在内存中的栈内存;
生命周期不同:成员变量随着类的对象的创建而存在,随着对象的消失而消失;局部变量随着方法的调用而存在,随着方法的调用结束而消失(方法中代码块里的变量的不同,其生命周期是其所在的代码块);
初始值不同:成员变量有默认值;局部变量没有初始值,在使用前必须先赋值.

局部变量和成员变量同名时:局部位置使用变量是采用就近原则.
private关键字:

通过类的实例对象直接访问成员属性,存在安全问题,通过private关键字修饰属性进行限定;
private是修饰符,可以修饰成员变量和成员方法,其修饰的成员变量和成员方法只能在本类中访问;
针对private修饰的变量,可以相应的提供相应的方法(getXxx()和setXxx()),提供访问成员变量的方法;getXxx()提供两个获取属性值,setXxx()提供设置成员属性的方法,两个方法的修饰均为public,在访问属性的方法中进行对属性值进行限定.

this关键字:

代表所在类的对象引用;
方法被哪个对象调用,this就代表哪个对象;
局部变量给同名成员变量赋值;
作用:解决局部变量和成员变量重名,this.变量名,代表成员变量。

3. 面向对象的构造方法

作用:给对象的数据进行初始化(用来创建对象)
格式:

方法名和类型相同;
无返回值,void也没有;
没有具体的返回值,有return,但是没有具体的值。

调用:

通过new关键字调用,调用格式:类名 对象名 = new 构造方法(…);本质是用来创建对象。

注意事项:

如果我们没给出构造方法,系统会给出一个无参构造方法;
如果我们给出构造方法,系统就不会给出无参构造方法,如果要使用无参构造方法,需要定义无参构造方法,一般给出无参构造方法;
构造方法可以重载;
构造方法私有后,该类不能创建对象。

成员变量赋值:

使用setXxx()方法进行赋值;
使用有参构造方法赋值。

4. 类名作为形参和返回值

类名作为形式参数进行传递:

本质是需要传递该类的一个实体对象(需要创建该类的实体对象作为参数)。

类名作为返回值类型:

本质是返回一个该类的一个实体对象(需要定义一个该类的实体对象进行接收)。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 34
码字总数 0
×
Sunmos
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: