面向对象编程(2)

面向对象的特征:封装和隐藏

一、问题引入:菜鸟教程 Java封装性

二、封装性的体现:

   封装性的体现:①我们将类的属性Xxx私有化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值。②不对外暴露的私有的方法。③单例模式(将构造器私有化)④如果不希望类在包外被调用,可以将类设置成缺省

我们程序设计追求“高内聚,低耦合”:

1、高内聚:类的内部数据操作细节自己完成,不允许外部干涉;

2、低耦合:仅对外暴露少量的方法用于使用
 

    

三、四种权限修饰符:

1、Java规定的四种权限:

 2、四种权限可以用来修饰类及类的内部结构:属性、方法、构造器、内部类

3、具体的,4种权限都可以修饰类的内部结构:属性、方法、构造器、内部类

                        修饰类的话只能:缺省、public

封装性总结:Java提供了四种权限修饰符来修饰类及类的内部结构,体现类及类的内部结构在被调用时的可见性大小。
 

类的结构之三:构造器(构造方法、constructor)的使用

一、构造器的作用

1、创建对象

2、初始化对象的属性

二、说明

1、如果没有显示地定义构造器的话,则系统默认提供一个空参的构造方法

2、定义构造器的格式:权限修饰符 + 类名(形参列表){}

3、一个类中定义了多个构造器,彼此构成重载

4、一旦我们显示地定义了构造器之后,体统就不再提供空参的构造器

5、一个类中至少会有一个构造器

三、总结:属性赋值的先后顺序:①-②-③-④
①默认初始化

②显式初始化

③构造器中赋值

④通过"对象.方法"或“对象.属性"的方式,赋值

四、JavaBean是一种Java语言写成的可重用组件。

所谓JavaBean,是指符合如下标准的Java类:

        >类是公共的

        >有一个无参的公共的构造器

        >有属性,且有对应的get.set方法

this关键字的使用:

一、this可以用来修饰:属性、方法、构造器

二、this修饰属性和方法:

  this理解为:当前对象

        1、在类的方法中,我们可以使用"this.属性"或"this.方法"的方式,调用当前对象属性或方法,但是,通常情况下,我们都选择省略"this."。                特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用"this.变量"的方式,表明此变量是属性,而非形参。

        2、在类的构造器中,我们可以使用"this.属性"或"this.方法"的方式,调用当前对象属性或方法,但是,通常情况下,我们都选择省略"this."。                特殊情况下,如果构造器的形参和类的属性同名时,我们必须显式的使用"this.变量"的方式,表明此变量是属性,而非形参。

三、this调用构造器
       ①我们在类的构造器中,可以显式的使用"this(形参列表)"方式,调用本类中指定的其他构造器

       ②构造器中不能通过"this(形参列表)"方式调用自己

        ③如果一个类中有n个构造器,则最多有n-1个构造器中使用了“this(形参列表)”

        ④规定:“this(形参列表)”必须声明在构造器首行

        ⑤构造器内部,最多只能声明一个“this(形参列表)”,来调用其他构造器 

Package、Import关键字的使用:

一:Package:

1、为了更好地实现项目中类的管理,提供包的概念

2、使用Package声明或借口所属的包,声明在源文件首行

3、 包,属于标识符,遵循标识符的吗,命名规则,、规范(小写)、“见名知意”

4、每“.”点一次就代表一层文件目录

补充:在同一个包下面不能定义同名的接口、类;不同的包可以

二、Import:导入

1、在源文件中显示地使用import导入指定包下的类,接口

2、声明在包的声明和类的声明之间

3、如果需要导入多个结构,并列写出即可

4、可以使用“xxx.*”的方式,表示导入xxx包下的所有结构

5、如果使用的类或接口是java.lang包下定义的,则可以省略Import结构

6、如果使用的类或接口是本包下定义的类或者接口,也可以不用import

7、如果在源文件,使用了不同包下同名的类,必须至少有一个类需要以全类名的方式显示。

8、使用“xxx.*”的方式可以表面调用xxx包下的所有结构。但如果使用的是xxx子包下的结构,则仍需要显示地调用该包。

9、Import Static:导入指定包或接口下的静态结构。属性或者方法

import java.util.ArrayList;//表示单独Import导入的util包中的类
import java.util.*;//Import导入的util包中的所有结构

public class PackageImport {
    public static void main(String[] args){

        String info = Arrays.toString(new int[]{1,2,3});

        ArrayList list = new ArrayList();

        HashMap map = new HashMap();

        }

    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值