2024年java基础特性封装

java基础特性封装目录 一 封装的定义 二 实现封装 三 构造方法 四 构造方法的重载 五 this 关键字 六 代码块 面向对象的三大特性为 封装 继承和多态 一 封装的定义 封装是面向对象的核心思想 将对象的属性和方法封装成一个整体 同时 也可以将不想让外界知道的信息隐藏起来 二 实现封装 类的封装是指将对象的状态信息隐藏在对象的内部

大家好,我是讯享网,很高兴认识大家。



目录

一、封装的定义

二、实现封装

三、构造方法

四、构造方法的重载

五、this关键字

六、代码块


面向对象的三大特性为:封装,继承和多态。

一、封装的定义

  封装是面向对象的核心思想,将对象的属性和方法封装成一个整体。同时,也可以将不想让外界知道的信息隐藏起来。

二、实现封装

  类的封装是指将对象的状态信息隐藏在对象的内部,不允许外部程序直接访问对象的内部信息,而是通过该类提供的方法实现对内部信息的访问。

  在Java中,定义一个类,将这个类中的属性私有化,可以使用private关键字修饰类的属性,被私有化的属性只能在该类中被访问。外界如果想要访问私有属性,就必须通过setter和getter方法设置和获取属性值。

 
讯享网 

三、构造方法

  实例化一个对象后,如果要为这个对象中的属性赋值,就必须通过直接访问对象的属性或者调用setter方法才能实现,如果需要在实例化对象时为这个对象属性赋值,可以通过构造方法实现。

  构造方法是类中一个特殊的成员方法,在类实例化对象时自动调用。

实现构造方法

注意事项:(1)、构造方法的名称必须和类名相同

                   (2)、构造方法名称前不能有任何返回值类型的声明

                   (3)、不能在构造方法中使用return返回一个值,但是可以写return语句作为方法的结束

讯享网

四、构造方法的重载

  与普通方法相同,构造方法也可以重载,在一个类中可以定义多个构造方法,只要每个构造方法的参数或者参数个数不同即可。在创建对象时,可以通过调用不同的构造方法为不同的属性赋值。

 

  在Java中的每个类都至少有一个构造方法,如果在一个类中没有定义构造方法,系统对自动为这个类创建一个默认的构造方法,这个默认的构造方法没有参数,方法体中没有任何的代码,即什么也不做。

五、this关键字

  在Java开发中,当成员变量和局部变量重名时,需要用到this关键字来分辨成员变量和局部变量,主要作用有三种。

1、使用this关键字调用本类中的属性

2、使用this关键字调用成员方法 

3、使用this关键字调用本类的构造方法


1、使用this关键字调用本类中的属性

讯享网

  在构造方法中,参数名称和成员变量的名称相同,编译器无法确定哪个是当前对象的属性。所以,Java提供了this关键字来指代当前对象,通过this可以访问当前对象的成员。


2、使用this关键字调用成员方法

read2方法使用this关键字调用read1方法

 

3、使用this关键字调用本类的构造方法

通过this调用没有参数的构造方法

使用this调用类的构造方法的注意事项:

1、只能在构造方法中使用this调用其他的构造方法,不能在成员方法中调用其他的构造方法

2、在构造方法中,使用this调用构造方法的语句必须放在第一行,且只能出现一次。

 

六、代码块

  代码块,就是"{}"括号括起来的一段代码,根据位置以及声明的关键字不同,代码块可以分成,普通代码块、构造块,静态代码块和同步代码块。

普通代码块

普通代码块就是直接在方法或语句中定义的代码块

 

  在main()方法中定义了一个局部代码块,局部代码块就main()方法进行了分隔,起到了限定作用域的作用。定义的两个相同的变量,由于两个变量处在不同的代码块,作用域不同,因此并不会互相影响。

构造块

构造块是直接在类中定义的代码块

 

java基础特性封装

执行结果:

构造代码块
构造方法
构造代码块
构造方法

从执行结果中可以看出,构造代码块的执行顺序优先与构造方法。


静态代码块

  在Java类中,用static关键字修饰的代码块称为静态代码块。当类加载的时候,静态代码块会执行,由于类只加载一次,因此静态代码块也只执行一次。在程序中,通常使用静态代码块对类的成员变量进行初始化。

 

执行结果:

静态代码块
构造代码块
构造方法
构造代码块
构造方法
从执行结果可以看出,代码块执行的顺序为静态代码块、构造代码块、构造方法,而且静态代码块只执行一次。


小讯
上一篇 2024-12-31 18:39
下一篇 2024-12-27 07:31

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/10318.html