封装

  • 封装就是将类的某些信息隐藏在类的内部,不允许外部直接访问。而是通过该类提供的方法对隐藏的信息进行访问。

    public class Person {//隐藏类的信息,这样外部就不能访问private  String  name;private  int age;//可以向外部提供专门的方法,来对类中私有的属性访问public void setName(String name){if(name!=null){//this表示当前正在访问的对象this.name = name;}}public String getName(){return this.name;}public void setAge(int age){this.age=age;}public int getAge(){this.test();return this.age;}

    而其他类只能通过给定的方法访问。

    public class Test {public static void main(String[] args) {//Person p=new Person("jim",10);Person p=new Person();p.setName("张三");p.setAge(10);System.out.println(p.getAge());System.out.println(p.getName());}
    }
  • 补充:

    • this关键字表示当前类的对象的属性、方法。(this必须放在非静态方法中,因为静态的方法和属性属于类,不属于对象。)
    • 一般封装给定方法的快捷方式:鼠标右击–>Generate–>Getter and Setter

继承

  • 继承的相关概念

    1. 继承就是在已有类的基础上派生出新类的过程,新类可以拥有父类的非私有属性、方法,从而提高代码的重用性、扩展性(方法的重写)。

    2. 能继承的两个类之间大都属于(A是B[a is b])这样的关系。比如,猫是一个动物,也就是说猫类继承了动物类。

    3. 被继承的类是父类(基类),继承过的类是子类(派生类),子类通过(extend关键字+父类名)将父类继承过来。

    4. java中只支持单继承,即一个类只能有一个直接父类。但是类的继承具有传递性,也就是说类可以间接被继承。(举个例子,Java中Object类是所有类的父类,所有的类都直接)

  • 继承的相关过程

    1. 在继承后创建子类对象的时候,会优先调用父类的无参构造方法,创建父类对象。通过“super()”关键字调用父类构造方法,(默认为无参构造方法),如果写出来要写在第一行。

    2. 当父类的方法不能满足子类的需求时,可重写父类中的方法。
      重写规则:

      • 方法名相同、参数列表相同、返回值类型相同、访问权限相同
      //父类
      public class Animal{private String name;private int age;public void eat(){System.out.println("动物正吃");}public void setName(String name){this.name = name;}public String getName(){return  this.name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
      }
      //子类
      public class Dog extends  Animal{private String type;@Overridepublic void eat() {System.out.println("狗吃。");}public void study(){System.out.println("狗正学习");}public String getType() {return type;}public void setType(String type) {this.type = type;}
      }
      //测试类
      public class TestExtends {public static void main(String[] args) {Dog dog = new Dog();dog.setName("拉拉");dog.setType("狼犬");System.out.println(dog.getName());System.out.println(dog.getType());dog.eat();dog.study();}
      }

      补充:@override是重写的意思,快捷键:Ctrl+o

多态

类与类的关系

  • 关联
    关联就是对象与对象(类与类)之间的连接,java中关联关系表现为一个类作为另一个类的属性存在。比如人拥有车。人和车是不同的类,他们的对象之间存在对应关系。基本满足( A has B)

    • 关联关系分为:一对一关联、一对多关联(集合、数组);单向关联、双向关联。
  • 依赖

    依赖即一个类使用另一个类作为参数 。

    依赖关系是临时的,方法完成后,变量立即被销毁 。

多态

  • 多态就是同一种事物在不同的时刻,所表现出的不同状态。

  • 多态的条件:

    1. 继承(包括接口的实现)。
    2. 必须有重写的方法(往往会在父类中定义一些抽象的方法,即没有方法体的方法)
    3. 父类的引用指向子类的对象。
  • 多态下成员方法的调用

    1. 编译看左边,运行看右边。

        Animal dog = new Dog();
    2. 编译运行都看左边(针对静态方法)

  • 补充:

    • 向上转型

      向上转型与默认转换相似,提高了程序的扩展性。

       Animal animal = new Dog();

      问题:父类类型变量无法调用子类特有的方法。因此出现了向下转型。

    • 向下转型

      Dog dog = (Dog)animal;
      //往往在向下转型钱需要先判断 “dog” 是不是 “animal”类型的对象。
      //否则会出现 Dog dog = (Dog) object (实际上Dog和Object并无关系)

javaSE探赜索隐之三--<类与对象的爱恨情仇下>相关推荐

  1. javaSE探赜索隐之三<类与对象的爱恨情仇上>

    文章目录 面向对象思想 面向对象 面向过程 类 面向对象思想 面向对象 面向对象适合处理复杂的事情,先使用对象对整体关系作出分类,然后根据不同类进行细节处理. 面向对象关注于从宏观上把握事物之间的关系 ...

  2. javaSE探赜索隐之三<类与对象的爱恨情仇中>

    文章目录 引用和对象 值传递和引用传递 static关键字 引用和对象 引用,顾名思义,就是借用.调用的意思.引用类型的变量系统也会在栈里面开辟一定的存储空间,与8种基本类型不同的是,引用类型的变量里 ...

  3. 前端后端的爱恨情仇--续集

    文章目录 前端妹子给我打电话了 Eolink 直呼真香 1. DTDD:文档与测试驱动开发 2. API研发测试天花板 3. 超强的Mock API 4. 隐秘又好用的小亮点 5 . 针对开发者比较友 ...

  4. 点、线、圆、矩形、抛物线的类定义_点、圆、球和n维球体积之间有怎样的爱恨情仇?让我们一起扒开他们之间鲜为人知,惊为天人的秘密关系!...

    吃瓜群众们,请拿好你们的小板凳,错开坐好,不要挡住后面人的视线,不要把西瓜仔西瓜皮乱吐乱丢.我们要开始了. 恩,让我想想,从何说起. 一个点 如左边所示.试想一下,这个点在纸上变大变大变大,就成了圆. ...

  5. 深度解析单例与序列化之间的爱恨情仇

    转载自 深度解析单例与序列化之间的爱恨情仇 本文将通过实例+阅读Java源码的方式介绍序列化是如何破坏单例模式的,以及如何避免序列化对单例的破坏. 单例模式,是设计模式中最简单的一种.通过单例模式可以 ...

  6. 深入Java虚拟机之 --- JVM的爱恨情仇

    (本文参考深入理解JAVA虚拟机第二版第2章) 系列文章: 深入Java虚拟机之 - JVM的爱恨情仇 JAVA 垃圾回收机制(一) - 对象回收与算法初识 JAVA 垃圾回收机制(二) - GC回收 ...

  7. Spring发展史! 和那些巨头的爱恨情仇!

    ** 码农的春天----------Spring来了 关于Spring的发展起源要回溯到2002年,当时正是Java EE和EJB大行其道的时候,很多知名公司都是采用此技术方案进行项目开发.这时候有一 ...

  8. 那些大学简称背后的“爱恨情仇”:东西南北中,就剩北大没人抢了

    春节期间,免不了要被亲戚问在哪读大学? >>>> 我:华中大啦 亲戚:?有这大学 我:华中科技大学 亲戚:奥~华科啊,华科就华科,华中大是啥啊 我:委屈啊,学校官方简称是华中大 ...

  9. 除了love和hate,还能怎么表达那些年的“爱恨情仇”?

    实用英语 帮你全面提高英语水平 关注 童鞋们每次刷美剧的时候,相信都会被CP感满满的男女主角虐得体无完肤吧. 可是,一到我们自己表达爱意或者恨意的时候,却苦于词穷,只会用love, like, hat ...

最新文章

  1. 数据结构——算法之(010)( 字符串的左旋转操作)
  2. SNMP在windows linux router上的配置笔记
  3. laravel 框架中使用数据库迁移添加注释
  4. 操作ROS松灵机器人步骤及遇到的问题
  5. react结合redux的开发步骤
  6. 【Python】交互式界面创建函数
  7. 数据在内存中的存储(二进制形式存储)
  8. ppt中的流程图怎么整体移动_PPT中图片太丑了?该怎么办?
  9. PLC基本指令系统优势
  10. WIN7 64位 VS2013下载
  11. ensp官方停止下载
  12. PowerApps中应用如何显示用户详细信息
  13. appcan与java_APPCAN学习笔记004---AppCan与Hybrid,appcan概述
  14. 百度网盘等相关百度产品账号不存在问题
  15. 使用 Microsoft Symbol Server 获取调试符号文件
  16. 面向对象和面向过程有什么区别
  17. 携程网被黑,谁干的??
  18. ecshop小京东短信接口插件修改-v41,42,43,50+图片说明
  19. 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
  20. 网购平台比价系统的实现

热门文章

  1. Windows下Zookeeper启动zkServer.cmd报错闪退,找不到zoo.cfg文件
  2. Android 13 Camera ITS 环境搭建(从Python安装到环境配置详解)
  3. 扫除知识共享障碍,天翎知识文档管理系统+群晖NAS一体化解决方案
  4. 两代 Windows 性能大比拼!Win8 完胜 Win7
  5. NT Server无盘站配置技术详解
  6. 最新码支付源码+完整版+免挂监听回调+微信、支付宝、qq监控APP打包教程
  7. 如何安装计算机刻录程序,详解怎么用电脑刻录光盘
  8. 520表白网站(附源码与修改教程)
  9. [翻译] 数学翻译词汇
  10. 对郭天祥老师的一些知识点的解读