Java(day07)构造、继承、重载

ANSYS Help USER300 USER 300概述单元描述输入数据假设与限制条件 概述 单元描述 Mechanical APDL提供了一种方便的方法来创建自定义的单元,命名为USER300,可以创建几乎任何单元类型。 UserElem子程序为Mechanical APDL在单元类型创建上提供了一个接口,可传递用户自定义单元创建时所需的所有数据,然后从自定义单元返回所有数据和结果,以更新数据库和文件。因为通过接口可以访问数据库和文件信息,所以很少需要了解Mechanical APDL数据库程序和文件结构。该接口还提供了获取Mechanic 阅读详情

重载:

同类同方法不同参数

构造:

概念

与类同名,且没有返回值类型,可以含参也可以不含参

在这里插入图片描述

特性

如果提供其他的构造函数,默认的无参构造会被覆盖

每次创建对象时,都会执行构造方法

每一个类中都默认有一个没有参数的构造方法,每次new对象时,都会自动触发这个类对应的构造方法

作用

用于创建对象

package cn.tedu.oop;
/*本类用于测试构造方法*/
public class TestConstructor {
    public static void main(String[] args) {
        /*每一个类中都默认有一个没有参数的构造方法
        * 每次new对象时,都会自动触发这个类对应的构造方法*/
        Persion p=new Persion();
        System.out.println(p.name);
        System.out.println(p.age);
        System.out.println(p.address);
        p.eat();
        Persion p2=new Persion();
        Persion p3=new Persion("李白");
        Persion p4=new Persion("李逵",32,"柳树下");
        System.out.println(p4.name);
        System.out.println(p4.age);
        System.out.println(p4.address);
        System.out.println(p3.name);

    }
}
class Persion{
    String name;
    int age;
    String address;
    public Persion(){
        System.out.println("我是persion类的无参构造");
    }
    //无参构造
    public void eat(){
        System.out.println("干饭不积极,思想有问题~");
    }
    public Persion(String name){
        this.name=name;
        System.out.println("我是persion的含参构造");
    }
    //全参构造方法
    public Persion(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
        System.out.println("我是persion的全参构造");
    }
}
运行结果:
我是persion类的无参构造
null
0
null
干饭不积极,思想有问题~
我是persion类的无参构造
我是persion的含参构造
我是persion的全参构造
李逵
32
柳树下
李白

构造代码块:{}

位置:类里方法外

执行时间:每次创建对象时都会执行构造代码块,且优先构造方法执行

作用:用于提取所有构造方法的共性功能

package cn.tedu;
/*本类用于测试代码块*/
public class TestBlock {
    public static void main(String[] args) {
        //System.out.println("666");
        Pig p1=new Pig();
        Pig p2=new Pig("好");
        Pig p3=new Pig("菜",6);
    }
}
class Pig{
    String food;
    int age;
    {
        System.out.println("我是构造代码块");
    }
    public  Pig(){
        System.out.println("我是无参构造");
    }
    public  Pig(String food){
        System.out.println("我是含参构造"+food);
    }
    public  Pig(String food,int age){
        this.age=age;
        this.food=food;
        System.out.println("我是全参构造");
    }
    public void eat(){
        System.out.println("小猪爱吃菜叶子");
    }

}

执行结果:
我是构造代码块
我是无参构造
我是构造代码块
我是含参构造好
我是构造代码块
我是全参构造

局部代码块:{}

位置:类里方法里

执行时间:调用局部代码块所处的方法时执行

作用:用于控制变量的作用范围,变量的作用范围越小越好

package cn.tedu;
/*本类用于测试代码块*/
public class TestBlock {
    public static void main(String[] args) {
        //System.out.println("666");
        Pig p1=new Pig();
        Pig p2=new Pig("好");
        Pig p3=new Pig("菜",6);
        p1.eat();
    }
}
class Pig{
    String food;
    int age;
    {
        System.out.println("我是构造代码块");
    }
    public  Pig(){
        System.out.println("我是无参构造");
    }
    public  Pig(String food){
        System.out.println("我是含参构造"+food);
    }
    public  Pig(String food,int age){
        this.age=age;
        this.food=food;
        System.out.println("我是全参构造");
    }
    public void eat(){
        System.out.println("小猪爱吃菜叶子");
        {
            System.out.println("我是一个局部代码块");
        }
    }

}
运行结果:
我是构造代码块
我是无参构造
我是构造代码块
我是含参构造好
我是构造代码块
我是全参构造
小猪爱吃菜叶子
我是一个局部代码块

this关键字

1.当成员变量和局部变量同名时,可以使用this关键字指定本类的成员变量

package cn.tedu.oop2;
/*本类测试this*/
public class TestThis {
    public static void main(String[] args) {
        Dog d=new Dog();
        d.eat();
    }
}
class Dog{
    int count=666;
    int sum=100;
    public void eat(){
        int sum=10;
        System.out.println(sum);
        System.out.println(count);
        System.out.println(this.sum);
    }
}
执行结果:
10
666
100

2.在含参构造函数中调用无参构造函数,且必须写在第一行

package cn.tedu.oop2;
/*用来测试this*/
public class TestThis2 {
    public static void main(String[] args) {
        cat c1=new cat();
        cat c2=new cat("下午好");
    }
}
class cat{
    public cat(){
        this("你好");
        System.out.println("小猫的无参构造");
    }
    public cat(String s){
        //this();
        System.out.println("小猫的含参构造"+s);
    }
}
执行结果:
小猫的含参构造你好
小猫的无参构造
小猫的含参构造下午好

继承(extends)

java只能单继承,一个子类不可以有多个父类,但一个父类可以有多个子类

子类继承父类后,不能继承父类的私有资源

super

当父类的成员变量和子类的成员变量同名时,可以使用super关键字指定父类的成员变量

package cn.tedu.oop2;
//用于测试继承中变量的使用
public class TestExtends1 {
    public static void main(String[] args) {
        Son s=new Son();
        s.study();
        System.out.println(s.count);
    }
}
class Father{
    int sum=1;
    int count=2;
}
class Son extends Father{
    int sum=10;
    public void study(){
        System.out.println("good good study,day day up");
        int sum=100;
        //打印子类的局部变量sum
        System.out.println(sum);
        //打印子类的成语变量sum
        System.out.println(this.sum);
        System.out.println(super.sum);
    }
}
执行结果:
good good study,day day up
100
10
1
2

子类在创建对象时,默认会先调用父类的构造函数

子类必须调用父类的构造方法,不论是无参还是含参

package cn.tedu.oop2;
//本类用于测试继承中的构造方法
public class TestExtends {
    public static void main(String[] args) {

        Son2 s=new Son2();
    }
}
class Father2{
    public Father2(){
        System.out.println("我是父类的无参构造");
    }
    public Father2(String s){
        System.out.println("我是父类的含参构造"+s);
    }

}
class Son2 extends Father2{
    public Son2(){
        super();
        System.out.println("我是子类的无参构造");
    }
}

执行结果:
我是父类的无参构造
我是子类的无参构造

重点

创建对象的同时就已经调用了构造方法

super:1.作用于不同类,子类与父类成员变量同名时,子类可以通过super.调用父类的成员变量

package cn.tedu.oop2;
//用于测试继承中变量的使用
public class TestExtends1 {
    public static void main(String[] args) {
        Son s=new Son();
        s.study();
    }
}
class Father {
    int sum = 1;
}
class Son extends Father{
    int sum=10;
    public void study(){
        int sum=100;
        System.out.println(sum);
        System.out.println(super.sum);
    }
}
运行结果:
100
1

           2.作用于不同类中,子类可以通过super()调用父类的无参构造,也可以通过super(参数)调用父类的含参构造方法

package cn.tedu.oop2;
//本类用于测试继承中的构造方法
public class TestExtends {
    public static void main(String[] args) {

        Son2 s=new Son2();
    }
}
class Father2{
    public Father2(){
        System.out.println("我是父类的无参构造");
    }
    public Father2(String s){
        System.out.println("我是父类的含参构造"+s);
    }

}
class Son2 extends Father2{
    public Son2(){
        super("哈哈");
        System.out.println("我是子类的无参构造");
    }
}

运行结果:
我是父类的含参构造哈哈
我是子类的无参构造

           3.子类在创建对象时,默认会调用父类的方法,因为子类的构造函数中的第一行默认存在super()

package cn.tedu.oop2;
//本类用于测试继承中的构造方法
public class TestExtends {
    public static void main(String[] args) {

        Son2 s=new Son2();
    }
}
class Father2{
    public Father2(){
        System.out.println("我是父类的无参构造");
    }
    

}
class Son2 extends Father2{
    public Son2(){

        System.out.println("我是子类的无参构造");
    }
}

运行结果:
我是父类的无参构造
我是子类的无参构造

this:1.作用于同一类中,当成员变量和局部变量同名时,可以通过this调用成员变量

          2. 在同一类的不同的构造方法中,在含参构造中可以通过this()来调用无参构造方法;无参构造可以通过this(参数)调用含参构造方法;   

15 君正IPC库开发总结 在前面的章节中,我们介绍了君正ISP、视频采集、音频采集、音频播放、云台电机、移动侦测算法、人形侦测算法、移动跟踪算法等的封装。那么,应用层如何使用这些封装好的接口呢?根据设计模式中的依赖倒置原则:高层次的模块不应该依赖于低层次的模块,它们都应该依赖于抽象。因此,应用层应当只能感知到我们封装的接口类,而不应当感知到其对应的具体实现类。 阅读详情

相关推荐

ICLR 2022)ODConv:即插即用的动态卷积 (附代码)

一定程度上讲,ODConv可以视作CondConv的延续,将CondConv中一个维度上的动态特性进行了扩展,同时了考虑了空域、输入通道、输出通道等维度上的动态性,故称之为全维度动态卷积。ODConv是一种动态卷积算法,它的原理是在卷积过程中,根据输入数据的特征动态地调整卷积核的形状和大小,以适应不同的输入数据。具体来说,ODConv通过引入一个可学习的形变模块,根据输入数据的特征动态地调整卷积核的形状和大小,从而提高了卷积神经网络的性能。此外,相比常规卷积,动态卷积的卷积核参数往往是其n倍。

PLANTTHESON的博客 2万+

Java基础七-------继承之方法的重写和重载

1、任何动物都有吃的方法,与玩的方法,那么每个动物具体吃啥,是不是应该区分一下? 当前子类,可以确定自己具体的方法,那么久需要将方法进行重写操作。子类如果重写了父类的方法,那么在运行过程中,就会调用自己重写的方法。比如:猫狗都有吃饭的方法,那么具体吃什么,他们自己决定。 2、方法的重写需要注意: 1、必须有子父类的关系存在。 2、方法的重写必须方法名称,返回值,方法的访问修饰一模一样...

weixin_45135176的博客 489

[AHK] 自动化获取通达信股票代码:从消息钩子到数据提取

本文详细介绍了如何使用AHK(AutoHotkey)通过Windows消息钩子技术自动化获取通达信股票代码,实现高效数据提取和交易自动化。文章涵盖消息机制原理、AHK脚本开发、性能优化及安全注意事项,为股票交易者提供了一套完整的解决方案。

weixin_42614269的博客 617

2.3 java基础 day04 构造方法 继承 多态 方法重载 方法重写 递归 访问权限 内部类

当 使用父类声明、创建子类对象的时候,子类的方法不可用(父类和子类方法重名时可以用子类的方法)所谓的多态,其实就是一个对象在不同场景下表现出来的不同状态和形态。基本数据类型在匹配方法时,可以在数值不变的情况下扩大数据精度。注:子类没有找父类(就那么简单)面向对象编程 3 个重要特征:继承、封装、多态。多态语法其实就是对对象的使用场景进行了约束。一个对象可以使用的功能取决于引用变量的类型。构造方法重载调用另外构造方法。普通方法重载和构造方法重载。

m0_56356342的博客 690

Unity地形优化实战:LOD、合批与HLOD打造流畅开放世界

在计算机图形学与游戏开发中,渲染优化是保障应用流畅运行的核心技术。其基本原理在于通过算法与策略,在视觉保真度与硬件资源消耗之间寻求最佳平衡,旨在提升帧率、降低功耗。这一技术的核心价值在于,它直接决定了大规模场景(如开放世界游戏)在性能受限平台(尤其是移动设备)上的可行性。具体到地形渲染这一关键应用场景,开发者需要综合运用多层次细节(LOD)技术来动态调整模型精度,并通过Draw Call合批(Batching)与GPU实例化(GPU Instancing)来大幅减少CPU到GPU的通信开销。对于超大规模世界

weixin_28077113的博客 332

使用循环神经网络预测温度

简介 本文以天气时间序列数据集为例,讨论如何使用深度学习模型预测未来天气温度。 使用的是由德国耶拿马克思普朗克生物地球化学研究所的气象站记录。 数据每10分钟记录一次,共记录14种不同的量,如气温、气压、湿度、风向等,原始数据可追溯到2003年,本例只使用2009-2016年的数据。 数据 下载并解压数据略。 加载数据: data_dir = r'E:\practice\tf2\temperature' fname = os.path.join(data_dir, 'jena_climate_2009_

guotianqing的博客 5282

java重载构造函数_Java中的构造函数重载 - 最佳实践

虽然没有“官方指南”,但我遵循KISS和DRY的原则。 使重载的构造函数尽可能简单,最简单的方法是只调用它(...)。 这样你只需要检查一次并且只处理一次参数。public class Simple {public Simple() {this(null);}public Simple(Resource r) {this(r, null);}public Simple(Resource r1, R...

weixin_33784667的博客 334

Linux 4.19、Linux 5.10、Linux 6.1 三个版本详细分析

Linux 4.19发布日期:2018年10月22日LTS 状态:是长期支持版本,官方支持到2024年12月。Linux 5.10发布日期:2020年12月13日LTS 状态:LTS 版本,官方支持到2026年12月。Linux 6.1发布日期:2022年12月11日LTS 状态:不是官方的LTS版本,但通常社区会为新的版本提供一定时间的支持。定位:稳定性和长期支持,广泛应用于多种平台,尤其是嵌入式系统和服务器。主要优势:稳定性高,广泛的硬件支持,核心功能可靠。

小灰灰的博客 5956

java中构造方法重载和继承

java中同一个类同的构造方法怎么调用另一个构造方法呢? 如果一个类中有多个构造方法,在一个构造方法中想要调用另一个构造方法,需要用到this(参数)这样的方式,且这行语句必须写在构造方法的第一行。 public class B { public B() { /** * 这里的this(字符串)就是调用符合参数要求的构造方法 * ...

Light_blue_love的专栏 764

【如何利用扩展卡尔曼滤波解决跟踪毫米波雷达目标】

笛卡尔坐标系(非极坐标系):使用两个垂直的轴(通常是x轴和y轴)来确定一个点的位置。你沿着这两个轴移动确定的距离来找到这个点。极坐标系:使用一个角度和一个距离来确定一个点的位置。首先,你转到一个特定的方向(角度),然后沿着那个方向移动确定的距离来找到这个点。希望这个例子能帮助你理解两种坐标系的基本概念!

小秋 AI SLAM 入门实战教程 885

【系列05】端侧AI:构建与部署高效的本地化AI模型 第4章:模型量化(Quantization)

量化的基本思想是减少模型中用于表示参数和激活值的比特数。在模型训练时,参数通常使用32位浮点数(FP32)进行存储,这提供了高精度,但也消耗大量的内存和计算资源。量化则将这些32位浮点数转换成低比特数表示,通常是8位整数(INT8)。量化的原理可以概括为:对浮点数范围进行校准,并将其映射到更小的整数范围内。例如,将一个FP32的权重(如-1.5到1.5)映射到INT8的范围(-128到127)。在推理过程中,模型将使用这些低精度的整数进行计算,从而大大减少了所需的计算量。量化带来的主要收益减少模型大小。

学习,输出==》再学习再输出 1215

构造方法 方法的重载、重写 继承

    1)构造方法:         构造方法是方法的一种特殊显示,它有两个特征:1)无返回类型(注意,不是返回类型为void,而是根本就没有返回类型)。2)方法名与类名相同。         当我们定义一个类的对象时,eg:我们已经有了一个Dog类,当定义一个Dog的对象时,Dog dog = new Dog();在这个语句中,new Dog(),就是创建了一个类的对象,同时也调用了该类...

yotion2的博客 466

YOLOv8有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例

大家好!欢迎阅读本专栏。本专栏涵盖了YOLO8中C2f、主干网络、检测头、注意力机制、Neck等多种结构的创新,同时也包括了 YOLO相关的基础知识以及相关项目。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 3万+

Java基础-day07-继承成员变量super·方法重写·构造方法·this 与super的区别·重载与重写的区别

继承成员变量super·继承方法重写·继承构造方法·this 与super的区别·重载Overload与重写Override的区别

weixin_58678891的博客 270

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

javase-day07-构造、继承

构造方法 构造方法作用就是对类进行初始化。每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认不带任何参数的构造方法。 在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。 new一个对象的时候要用到构造函数,例如Hello hello = new Hello();这时调用的是Hello的无参数构造方法。 在JAVA中如果不写构造方法的话,会默认加上一个无参数的构造方法,但是如果已经有了一个有参数的构造方法,那么无参数

徐xx的博客 132

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java Part1 Day9,10 类 方法重载 构造方法 封装 继承

两日内容. 类 类的成员 构造方法 方法重载 1.类 文件的扩展名 . Java 对象和类的关系:类是对象的统称,对象是类的具体实例 对象:明确,具体的事物 类:把具有相同属性、行为的事物归为一类 通过 属性/特征,行为来描述对象 属性/特征:名词,用来描述对象有什么 类的修饰符:public(默认) 公共的 必须和类文件同名 属性:语法上就是变量 位置:类内部,方法的外部 称呼:实例变量 成员变量 2.方法的重载 在同一个类中,方法名相同,参数不同(参数的个数,类型,顺序),称为

weixin_52491177的博客 169

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

CGBTN2110-DAY07总结复习

DAY07 复习 1.构造函数: 格式:与本类类名同名,且没有返回值类型 作用:创建对象,创建一次,执行一次构造函数 分类: 1)无参构造:默认存在,如果添加了其他构造,默认的构造函数会被覆盖 2)含参构造:对于参数没有任何要求,有参数就行 3)全参构造:全参构造的参数必须与本类属性一致 全参构造不仅可以创建对象,还可以给对象的所有属性赋值 2.方法的重载 在同一个类中,存在多个方法名相同,但参数列表不同的方法 如果在同类中,多个同名方法的参数个数不同,一定构成重载 如果在同类中,多个同名方法的参数个数相

程序媛泡泡的博客 2973

Java 继承、方法重载与重写、this 与 super 关键字

本文深入讲解了Java继承的核心概念与实践。首先分析了继承的本质,通过extends实现代码复用,并剖析了子类对象创建时的内存模型(先父类后子类)。其次详细区分了方法重载(同一类中同名不同参)与方法重写(子类覆盖父类方法),强调重写需遵循"两同两小一大"原则。重点解析了this和super关键字:this代表当前对象引用,用于区分变量或调用本类构造;super代表父类引用,用于访问父类成员。最后通过动物继承体系的实战案例,展示了继承、方法重写与关键字的具体应用,为掌握Java面向对象编程

2503_93734861的博客 1236

CGBTN2111-DAY07总结复习

DAY07 复习 1.构造函数: 格式:与本类类名同名,且没有返回值类型 作用:创建对象 执行时机:每次创建对象时都会执行构造方法 分类: 1)无参构造:默认存在,如果添加了其他构造,默认的构造函数会被覆盖,所以要记得手动提供哦~ 2)含参构造:对于参数没有任何要求,有参数就行 3)全参构造:全参构造的参数必须与本类属性一致 全参构造不仅可以创建对象,还可以给对象的所有属性赋值 2.方法的重载 在同一个类中,存在多个方法名相同,但参数列表不同的方法 如果在同类中,多个同名方法的参数个数不同,一定构成重载

程序媛泡泡的博客 4391

Java day07:继承

一、继承 概述 多个类存在相同属性和行为时,将这此内容抽取单独的一个类中,(类当中抽象出一个类(父类)) china(子类)Amrican(子类)-> Person类 (父类) color ,language Janpanese -> 继承 -》person类 自动拥有了父类的color language ,类之间的关系~继承关系 生活继承 : 动物 (父类) 食草动物 食肉动物 (子类)(父类) 兔子,山羊 狮子 猎豹 (子类) 继承定义: 就是指子类继承父类的属性和行为.

weixin_44641804的博客 242

Day08——继承、super、重写、重载重写关系、final

Day08——继承、super、重写、重载重写关系、final

MF956的博客 1050

Java继承 及 构造方法

构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。就是加上abstract关键字,然后去掉大括号,直接分号结束抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可。

m0_57331274的博客 413

学点儿Java_Day7_继承、重载、重写、多态、抽象类

继承、重载、重写、多态、抽象类

Mr_Tang4的博客 503

java day07 继承 & 多态(1)

2.通过派生类对象访问父类与子类同名方法时,如果父类和子类同名方法的参数列表不同(重载),根据调用 方法适传递的参数选择合适的方法访问,如果没有则报错;2. 如果父类构造方法是带有参数的,此时需要用户为子类显式定义构造方法,并在子类构造方法中选择合适的 父类构造方法调用,否则编译失败。1.通过子类对象访问父类与子类中不同名方法时,优先在子类中找,找到则访问,否则在父类中找,找到 则访问,否则编译报错。2.如果访问的成员变量子类中无,则访问父类继承下来的,如果父类也没有定义,则编译报错。

moskidi的博客 1083

Java学习笔记-Day11 Java方法重载和构造方法

Java学习笔记-Day11 Java构造方法一、方法重载1、条件2、特点二、构造方法1、特点2、作用3、默认的构造方法     一、方法重载   方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。   1、条件 ① 在同一个类中。 ② 方法名相同。 ③ 参数列表不同。(参数列表的参数的类型、个数、顺序不同)   2、特点 ① 与访问权限修饰符和返回值类型无关。 ② 与异常无关。   /** * 方法重载 * @author Administrator * *

qq_42141141的博客 445

Day11 | Java构造方法与构造器重载

构造方法是Java对象诞生的出生证明,它定义了对象初始化的核心逻辑。从new关键字触发的第一行代码,到继承关系中父类构造的隐式调用,构造方法确保了每个对象以合法、完整的姿态进入程序世界。通过默认构造方法的隐形规则、重载带来的灵活初始化,以及this()和super()的巧妙协作,我们得以在代码中实现高效、可维护的对象构建流程。记住:保留无参构造、避免冗余逻辑、遵循this和super的调用规范。下一篇预告Day12 | Java继承详解。

懒惰蜗牛的博客 920
上一篇: Java(day06)封装
下一篇: Java(day08)重写、final、static
五八个
博客等级 码龄8年 638粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值