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

相关文章

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

Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

《Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)》:本文主要介绍Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括... 目录前言一、引入Apache POI依赖二、用法&步骤2.1 创建Excel的元素2.3 样式和字体2.

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

JavaSE——封装、继承和多态

1. 封装 1.1 概念      面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节 。     比如:对于电脑这样一个复杂的设备,提供给用户的就只是:开关机、通过键盘输入,显示器, USB 插孔等,让用户来和计算机进行交互,完成日常事务。但实际上:电脑真正工作的却是CPU 、显卡、内存等一些硬件元件。