一. 封装的讲解

什么是封装?为什么要封装?怎么实现封装?

封装的目的是为了提高程序的安全性。封装就是把不想让第三者看的属性,方法隐藏起来。

封装的实现方法是: 1.修改属性的可见性,限制访问。

          2.设置属性的读取方法。

          3.在读取属性的方法中,添加堆属性读取的限制。

package com.chen.test;

public class Test9 {
private int age; // 定义年龄
private String name; // 定义姓名
private double price; // 定义价格 //用get/set方法对属性进行封装
public int getAge() {
return age;
} //在传入年龄时,设置了年龄的限制
public void setAge(int age) {
if (age > 100 || age < 0) {
this.age = 18;
}
this.age = age;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public double getPrice() {
return price;
} public void setPrice(double price) {
this.price = price;
}
}

封装的几个关键字总结:

   private :  只能被类自身调用

  public  :      1. 可以被类自身中的方法调用。 2. 可以在子类中直接调用父类的public属性和方法。3. 可以被对象直接调用。

  protected:   1.可以被类自身的方法调用。    2.可以在子类直接调用父类的protected属性和方法。

  默认关键字: 1. 可以在子类直接调用父类的默认关键字修饰的属性和方法。 2. 可以被本包的对象直接调用。

关键字的比较,从三个角度去对比:子类,包内,包外。

   protected关键字的设计的初衷就是为了子类调用父类的属性和方法设计的。

  默认关键字设计的初衷是为了包内可以调用,包外不可以调用。

二. 继承

 JAVA的继承是 单线继承,不允许多重继承;  

  子类可以继承父类的哪些方法和属性:
      1.父类的private属性和方法,无法继承
      2.父类的protected属性和方法,都可以继承
      3.父类的public属性和方法,都可以继承
      4.父类的默认关键字修饰的属性和方法,如果子类和父类在一个包里,则可以继承

抽象类与抽象方法:
    不能够被实例化的class,用abstract进行修饰,这就是抽象类。
    抽象类中可以写抽象方法、还可以写非抽象方法----------------非抽象类中不能定义抽象方法;
    抽象类中定义的抽象,必须要在子类中被重写------子类必须重写父类的抽象方法(除非子类也是抽象类)
抽象方法的作用?
   子类必须重写父类的抽象方法,可以实现多态;
final关键字的总结:
    1. final修饰变量     -----  给变量一次初始化的机会,以后就不能再修改
            public final double dburl;

final修饰引用型变量 -------------------锁定了引用的地址,不能再发生变化;
           final Dog dog = new Dog("欢欢");
           dog = null;

2. final修饰class   ----- 这个class不能被子类继承
             public final class Dog extends Pet{}

3. final修饰方法  ------ 表示这个方法不能被子类重写
             public final void swim(Pool pool) {}

重写:override
      子类有一个与父类,同名、同参、同返回值的方法,那么就说子类的这个方法重写了父类的同名方法;

重写了什么?
    方法的本质------>>> 是函数指针  
    重写的本质就是:用子类内存区中方法的首地址,替换父类内存区中同名方法的首地址

接口与抽象类的对比
    1. 接口是能力的表示
       抽象类是Class,它有属性和行为

2. 接口里可以定义常量,但是没有属性

3. 接口中的方法,都是public abstract (共有的抽象方法,不能定义其它类型的方法)

4. 抽象类中的方法,可以是抽象的,也可以是非抽象的。但是接口中必须是抽象的;

最新文章

  1. shell:遍历目录和子目录的所有文件
  2. jquery实现页面交互的几个小例子
  3. sql server 索引分析相关sql
  4. php preg_match 过滤字符
  5. iscroll性能
  6. php 连接主从数据库
  7. scala言语基础学习六
  8. 关于Excle中的VLookUp的函数的使用
  9. Android事件分发原理
  10. linux makefile: c++ 编程_基础入门_如何开始?
  11. warning: the `gets&#39; function is dangerous and should not be used.(转)
  12. 七个 Android 程序猿提高效率必备工具
  13. 读书笔记 effective c++ Item 27 尽量少使用转型(casting)
  14. PHP+MySQL分页显示示例分析
  15. 洛谷 P1057 解题报告
  16. Android系统架构及内核简介
  17. Eclipse设置类,方法注释模版
  18. BZOJ1127 POI2008KUP(悬线法)
  19. kafka系列八、kafka消息重复和丢失的场景及解决方案分析
  20. 强大的DataGrid组件[1]

热门文章

  1. JS组件系列——BootstrapTable 行内编辑解决方案:x-editable
  2. APP逆向常识
  3. [转]Java中导入、导出Excel
  4. jsp上传图片实时显示
  5. Android SD卡存储
  6. CSS之列表标签
  7. set和enum类型的用法和区别
  8. jQuery 下拉框应用 拓展
  9. php实现文件上传与下载(上)
  10. Yii2.0 对的一些简单的操作