封装 this

面向对象

三大特性:封装、继承、多态

打包(package)

  • 打包为了信息归类,有规律的区分代码。
  • 将相关联或者是功能类似的源代码文件放在同一个包中。
  • 为了更好的维护代码。解决我们源代码文件名字冲突问题。
  • 不同的包中可以有同名的class文件。
  • 包:在系统就是文件,项目中叫包。
  • 提高了代码的复用性,利于后期维护。
java源码中的包
  • java.util:都是工具,键盘输入工具,随机数工具,操作数组的工具
  • java.lang:String,默认lang已经引入
  • java.io:放置io流。网站下载上传,保存到电脑,从系统读取文件
  • java.awt:图形化界面类
使用其他包
  • import 包名.类名:引入其他包下的某个类,然后才可以使用。java默认已经在所有的源码文件中引入了java.lang包

  • import 包名.*:引入这个包下的所有的类。当我们使用这个包下的类超过3至5个的时候,可以全部引入

  • jdk1.5新增了一个功能,静态引入,import static 包名.Arrays.成员

创建包
  • 新建项目
  • 在src目录下,new—>package–>其名字
  • 起名规则:一般情况下是公司的域名倒置(www.iotek.com)
  • 我们起,com.iotek.分包
  • 层数:最少三层
  • 手动创建:
    • 先创建对应文件夹
    • 写类的时候,包信息一定要在第一行,package 包。
    • 其他包的中类需要引入,引入的代码一般写在包信息后面
  • 常用包
    • entity:实体类,类似数据类,比如Student,User
    • dao:放置实体类对应增删改查的类,比如查询学生,添加学生,删除用户等
    • service:放置逻辑代码的,就是具体的功能代码,比如登录功能,注册功能,充值功能等
    • controller:放置servlet代码的,就是前后端进行交互的
    • util:放置一些临时的工具代码的,比如处理时间转换。排序,打印等等的代码。
    • test:放置测试类的。

封装

概念:

  • 面向对象的三大特性之一,是面向对象对于客观世界模拟。在一个类中定义的方法和属性(字段),包装在一个单元中。单元以类的形式展现。将信息隐藏在类中。不让外部直接访问。将实现细节隐藏,这就是封装。结果就是一个同时带有特征和行为的数据类型。
  • 定义类,定义属性、方法的过程称为封装一个类。
  • 抽象:去掉不关注的信息,只定义我们所关注的信息。
  • 打包:将我们关注的信息保留实现封装
  • 封装:就是将这些保留的信息放在一个类中,隐藏实现细节,不让外部直接访问。

原因

  • 对类或者代码的修改、维护操作,不影响外部的使用。
  • 防止外部意外修改/恶意修改。
  • 有助于后期维护,降低代码直接的关联性。

实现封装

  • 四种访问修饰符:public>protected>不写>private
  • public:公开的。所有的类都可以直接访问。整个项目中,只要有对象,就可以直接进行访问。
  • protected:受保护的。只有在同包或者不同包下的子类可以访问到(待定)。
  • 不写:默认,只有在同一个包下才可以直接访问。
  • private:私有,只能在自己类里面使用。
选取
  • 对于属性来说:能私有的一律私有,除非有特殊要求。
  • 对于方法来说:一般是公开。除非有特殊要求的安装要求来。如果有一个方法,只有自己才会用到,其他都不会用。私有,私有的方法我们也叫临时。

setter&getter方法

  • 当我们的属性全部私有以后,外部不能直接访问了
  • 那我们外部创建好对象以后,需要访问属性,怎么办呢,我们就可以提供公开的访问属性的方法。
  • 每个属性都有。setter方法用来修改/赋值。getter用来获取
  • 创建一个Student,属性ID,姓名,年龄,分数。

构造方法

  • 构造方法也叫构造函数也有叫构造器
  • 用来创建对象,进行属性初始化
  • 语法:访问修饰符+类名(参数)
  • 与普通方法不同的是没有返回值,不写返回值类型
  • 如果我们没写的话,JVM会自动给我们补上一个无参的构造函数,如果写了任何一个构造,JVM将不再补充
  • 我们的选择:
    • 按照需求来,需要几个参数就写几个,不用纠结,如果碰到没有写的参数,可以通过setter方法赋值,用到了没有再加
    • 一般如果你写了有参的构造,无参的最好加上。(继承中,子类会默认第一行调用父类无参的构造,如果没写,报错)
  • 主要方便我们属性初始化。如果没有,老老实实进行setter赋值也行。
  • 如果有需求,不想让别的类创建你这个对象,那么你需要写私有的构造函数,一般都公开
  • 构造方法作用类似于setter方法,就是方便我们在创建对象的同时批量的对属性进行初始化。

this

  • this是一个关键字,不仅仅是一个关键字
  • this主要用在类中,用在普通方法中,代表当前对象。
  • 用在构造方法中,代表其他构造方法,但是,只能放在构造中的第一行。所以只能放一个,如果放两个或者以上,必然有一个或多个不在第一行,报错。
  • 在普通方法中用法,this等同于对象。实际上所指向的就是当前对象的地址
  • 一个类中国多个构造,实际就是构造方法的重载。
  • 一个是代表就是当前对象的引用。
  • 主要当方法的参数与属性同名的时候,为了区分参数和属性。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值