Java学习笔记—面向对象三大特征(封装、继承、多态)
2022/4/24 1:13:07
本文主要是介绍Java学习笔记—面向对象三大特征(封装、继承、多态),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
封装
- 封装实现三部曲
- 将属性进行类私有化(private)
- 提供一个公共的(public)set方法,让外部方便对类内部进行赋值
- 提供一个公共的(public)get方法,让外部对类内部的属性取值
- Account.java
package com.test.encap; public class Account { private String name; private double count; private String key; public String getName() { return name; } public Account() { } public Account(String name, double count, String key) { this.setName(name); this.setCount(count); this.setKey(key); } public void setName(String name) { if (name.length() >= 2 && name.length() <= 4){ this.name = name; }else { System.out.println("输入名字长度错误,设定默认值"); this.name = "defultName"; } } public double getCount() { return count; } public void setCount(double count) { if (count > 20.0){ this.count = count; }else { System.out.println("输入余额小于20,给出默认值21"); this.count = 21.0; } } public String getKey() { return key; } public void setKey(String key) { if (key.length() == 6 ){ this.key = key; }else { System.out.println("输入密码长度有误,设定默认值000000"); this.key = "000000"; } } public void showInfo(){ System.out.println("name = " + name + " count = " + count); } }
- AccountTest.java
package com.test.encap; public class AccountTest { public static void main(String[] args) { Account account = new Account(); account.setKey("666666"); account.setName("小明"); account.setCount(23.0); account.showInfo(); } }
继承
- 解决代码复用问题,将多个类存在相同的属性和方法是,可以从这些类中抽象出弗雷,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends来声明继承父类即可
- 继承原理图
- 1.子类继承了所有的属性和方法,非私有的属性和方法可以在子类直接访问,但是私有属性和方法不能在子类直接访问,要通过父类提供的公共的方法去访问
-
- 子类必须调用父类的构造器,完成父类的初始化
-
- 当创建子类对象是,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类的哪个构造器完成对父类的初始化工作,否则,编译不会通过
-
- 如果希望指定去调用父类的某个构造器,则显示的调用一下:super(参数列表)
-
- super在使用时,必须放在构造器的第一行(现有爸爸,再有儿子)
-
- super()和this()都只能放在构造器第一行,因此这两个方法不饿能共存在一个构造器中
-
- java所有类都是Object类的子类, Object是所有类的基类
-
- 父类构造器的嗲用不限于直接父类,将一直往上追溯直到Object类(顶级父类)
-
- 子类最多只能继承一个父类(指直接继承), 即java中是单继承机制。
-
- 不能滥用继承,子类和父类之间必须满足is-a的逻辑关系
继承的本质
这篇关于Java学习笔记—面向对象三大特征(封装、继承、多态)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南