Day08-封装与继承

2024-03-10 11:48
文章标签 封装 继承 day08

本文主要是介绍Day08-封装与继承,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Day08

  • 总结
    • static关键字
    • 包的命名规范
    • 设计类
      • 封装
    • this关键字
    • 继承
      • 子类可以从父类继承什么
      • 特点
    • 方法重写(Override)
      • 注意事项

总结

我是最棒的!基础不牢,地动山摇!

static关键字

static是静态修饰符,表示静态的

  1. 可以修饰普通方法

  2. 可以修饰字段[ 成员字段 ]

  3. 可以修饰内部类[暂时不了解]

  4. 不可以修饰外部类

  5. 不可以修饰局部变量;

  6. 不可以修饰构造方法

//static修饰的变量有一个静态区,一般是全局常量用static修饰
class Test{public static final int SIZE = 32;//数学上的PIpublic static final double PI = 3.14;
}
  1. static类级别的修饰符理解

    (1) static修饰的字段:应该通过类名.字段名访问

    (2) static修饰的字段:应该通过类名.方法,该字段被该类的所有对象共享

  2. 对象级别

    (1) 非static修饰的字段:对象名.字段名

    (2) 非static修饰的字段及方法,当创建对象时候,独属于每每一个对象,每有被该类的所有对象共享

  3. 静态上下文不能访问非静态的变量及方法

  4. 非静态上下文可以访问静态上下文:

对象是指具体的个体(也叫做实例instance)

包的命名规范

包命名规范:

一般是公司域名反过来写+项目名+模块名字+子模块名

设计类

封装

通过给类中的成员(字段,方法,构造方法)添加访问权限来实现访问控制

访问权限修饰符

//public 任何地方都能访问
//protected 本包中所有的类或者是它们的子类
//默认不写 本包中的所有类
//private 只允许本类中

###javaBean标准类

概念

  1.  字段必须私有化
    
  2.  给每一个字段提供合理的getter setter方法
    
  3. 必须有一个公共的无参数的构造方法;    
    

4) 类是公共的

package cn.itsource.pottindemo;
/*** 标准javabean* * 1.字段用private修饰* 2.有一个无参构造方法* 3.每个字段有对应的get和set方法* 4.类必须用public修饰* * @author tyx666**/
public class Student {/**姓名字段和年龄字段*/private String name;private int age;/**无参构造方法*/public Student(){}/**有参构造方法*/public Student(String name,int age){this.name = name;this.age = age;}/**每个字段的get和set方法*/public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

this关键字

指代的是当前对象

###适用场景

  1. 解决局部变量和成员变量的二义性 — get set 方法中的应用[在get/set可以写this]

  2. 作为返回值返回 : this持有对象地址,表示该类的一个对象即是一个数据

  3. 作为参数传递

  4. 本类中构造方法之间的相互调用,但必须是构造方法中的第一句

	/**无参构造方法*/public Student(){//调用有参构造方法this("xxx", 20);}/**有参构造方法*/public Student(String name,int age){this.name = name;this.age = age;}

继承

主要是提高代码的复用性,把相同的部分抽出去放到另一个类中,这个类叫其他类的父类(超类,基类,根类)。继承它的类叫子类(派生类,拓展类)

子类可以从父类继承什么

非私有的方法和字段可以被继承到,构造方法不能继承

私有方法和字段可以通过其他方法间接调用

特点

  1. 单继承

    一个类只能有一个直接父类

  2. 多重继承

    一个类可以有子类,子类也可以有子类,以此类推

  3. 隐式继承

    每个类都间接或者直接地继承了Object类

方法重写(Override)

方法名和形参列表相同,根据自己的需求来重写方法。

例如人和猪都会吃,都是吃的东西不一样

class Person extends animal{@Overridepublic void eat(){System.out.println(“人吃猪肉”);}
}class Pig extends animal{@Overridepublic void eat(){System.out.println(“猪吃白菜”);}
}

注意事项

  1.     重写只能出现在继承关系之中。当一个类继承它的父类方法时,都有机会重写该父类的方法。前提是父类的方法没有被被final(中文意思:最终的,以后讲)修饰
    
  2.     子类方法和父类方法的方法签名(方法名+参数列表)完全一致;
    
  3.     访问权限 : 子类方法的访问权限(修饰符)不能够比父类方法的访问权限更低(大于等于);
    
  4.     static 方法不能够被重写 (java语法)
    
  5.     返回值类型 : 子类方法的返回值类型可以是父类方法的返回值类型的子类或者相等
    

问题代码: int long根本不是类,int也不是long的子类

  1.     子类抛出的异常(Exception)下不能超过父类相应方法抛出的异常(子类异常不能大于父类异常,异常以后讲)
    
  2.     方法体 : 子类方法和父类方法主体可以一样, 但是没有任何意义!
    

这篇关于Day08-封装与继承的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/794146

相关文章

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

C++11委托构造函数和继承构造函数的实现

《C++11委托构造函数和继承构造函数的实现》C++引入了委托构造函数和继承构造函数这两个重要的特性,本文主要介绍了C++11委托构造函数和继承构造函数的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录引言一、委托构造函数1.1 委托构造函数的定义与作用1.2 委托构造函数的语法1.3 委托构造函

Java 继承和多态的作用及好处

《Java继承和多态的作用及好处》文章讲解Java继承与多态的概念、语法及应用,继承通过extends复用父类成员,减少冗余;多态实现方法重写与向上转型,提升灵活性与代码复用性,动态绑定降低圈复杂度... 目录1. 继承1.1 什么是继承1.2 继承的作用和好处1.3 继承的语法1.4 子类访问父类里面的成

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

Python多重继承慎用的地方

《Python多重继承慎用的地方》多重继承也可能导致一些问题,本文主要介绍了Python多重继承慎用的地方,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录前言多重继承要慎用Mixin模式最后前言在python中,多重继承是一种强大的功能,它允许一个

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties