首页 > 其他分享 >构造器

构造器

时间:2024-08-01 12:40:07浏览次数:4  
标签:Monkey weight 构造 基类 public name

构造器

目录

默认构造器:

构建过程是从基类向外扩散的,所以基类在导出类可以访问它之前,就已经完成了初始化

package ch7_05;

class A{
    public A(){
        System.out.println("I am A");
    }
}
class B{
    public B(){
        System.out.println("I am B");
    }
}
public class C extends A{
    B b = new B();
    public static void main(String[] args)
    {
        new C();
    }
}/* output:
I am A 
I am B
*///~

带参数构造器

默认构造器编译器可以轻松调用它是因为不必考虑要传递什么样的参数的问题,但是如果没有默认的基类构造器,或者想调用一个带参数的基类构造器,就必须用关键字super显式地编写调用基类构造器的语句,并且配之以适当的参数

package object;

import static net.mindview.util.Print.*;

class Game{
    Game(int i)
    {
        print("Game constructor");
    }
}
class BoardGame extends Game{
    BoardGame(int i)
    {
        super(i); //必须在构造器的第一行 super must consructor's first row
        print("BoardGame constructor");
    }
}
public class Chess extends BoardGame{
    Chess()
    {
        super(1);   //如果基类有默认构造器,导出类一定要用super()在第一行显示的调用基类的带参构造器
        print("Chess constructor");
    }
    public static void main(String[] args)
    {
        Chess x = new Chess();
    }
}/* output:
Game constructor
BoardGame constructor
Chess constructor

构造器重载

构造器可以认为它是个特殊的方法:无需声明返回值类型,如果声明了返回值类型则变成普通方法;

  构造器的作用:构造器并不是创建对象,而是初始化实例,严格来说对象是new出来的;

  构造器重载:完全类似于方法重载 -- 两同(同一个类、方法名相同)-- 一异(形参列表不同)

 1 public class Monkey{
 2     private String name;
 3     private double weight;
 4     private int age;
 5 
 6     //提供带两个参数的构造器
 7     public Monkey(String name , double weight){
 8         this.name = name;
 9         this.weight = weight;
10     }
11 
12     //提供带三个参数的构造器,构造器的作用是用来初始化实例的
13     public Monkey(String name , double weight , int age){
14         this(name,weight);
15         this.age = age;
16     }
17 
18     public void info(){
19         System.out.println("这是一只猴子,它的名字是:" + name +
20             ",体重是:" + weight + ",年龄是:" + age);
21     }
22 
23     public static void main(String[] args){
24         Monkey m = new Monkey("小金刚",100);
25         m.info();
26         Monkey m2 = new Monkey("金刚",300,20);
27         m2.info();
28     }
29 }

标签:Monkey,weight,构造,基类,public,name
From: https://www.cnblogs.com/luoyiwen123/p/18336420

相关文章

  • 构造器
    什么是构造器构造器通常也叫构造方法、构造函数,构造器在每个项目中几乎无处不在。当你new一个对象时,就会调用构造器。构造器格式如下:[修饰符,比如public]类名(参数列表,可以没有参数){//这里不能有return}Java构造器构造器的注意事项:构造器的名称必须和类名一致一个类中可......
  • 构造器
    构造器在面向对象编程中,特别是像Java这样的语言中,构造器(Constructor)是类的特殊方法,用于在创建对象时初始化对象。构造器有几个重要的特性,包括默认构造器、有参构造器以及构造器重载。1.默认构造器(DefaultConstructor)默认构造器是一个没有参数且没有显式定义的构造器。如果类......
  • c++含有纯虚函数的虚基类是否能构造?
    前言笔者工作中有很多类派生自一个虚基类,但是这些派生类又有很多操作是大致相同,尤其是这些类都不能拷贝,所以需要删除拷贝构造函数和拷贝赋值运算符。最直接的想法是在虚基类里面删除拷贝构造函数和拷贝赋值运算符。但我想因为虚基类不能实例化,那是否可以定义常规构造函数、......
  • 【C++】构造函数的深入学习
    一、初始化列表C++提供初始化列表语法用来初始化属性语法:构造函数():属性1(值1),属性2(值2)...{}classPeople{public://传统初始化操作Person(inta,intb,intc){A=a;B=b;C=c;}//初始化列表初始化属性Pers......
  • 构造做题笔记
    UOJ460新年的拯救计划\(n\)点完全图。选出尽量多生成树。输出方案。\(n\le1000\)。考虑上界,总共有\(\frac{n(n-1)}{2}\)条边,也就是最多可以分成\(\frac{n}{2}\)棵树。尝试证明这个上界可以达到。我们考虑归纳法,假设\(n=2k\)可行。考虑\(2k+1\),我们可以将每棵生......
  • 根据空域图信息构造飞机航线图以及飞行轨迹模拟matlab仿真
    目录1.程序功能描述2.测试软件版本以及运行结果展示3.核心程序4.本算法原理4.1航路网络建模4.2航线图构建4.3 飞行轨迹模拟的具体步骤5.完整程序1.程序功能描述    空域图是指航空领域中的一种图形表示方式,它涵盖了空中交通管理所需要的各种信息,比如航线......
  • File概述和File的构造方法
    File是什么    File对象表示路径,可以是文件,可以是文件夹,路径可以存在,可以不存在绝对路径vs相对路径    绝对路径:带盘符    相对路径:不带盘符,默认到当前项目下去找File的三种构造方法packagecom.chen.bao3;importjava.io.File;publi......
  • 数论构造
    数论构造还是相当玄学的版块,经常出现什么都没学的萌新能做出来但是数论较好的人卡题的现象……在其他的笔记我多少已经记录了专题类的构造,这里更多是记录一些综合性的/莫名其妙的构造。例1证明:对任意正整数\(n\),存在正整数\(k\),满足\(51^k\equiv17\:(mod~2^n)\)这是典型......
  • 利用大模型构造数据集,并微调大模型
    一、前言目前大模型的微调方法有很多,而且大多可以在消费级显卡上进行,每个人都可以在自己的电脑上微调自己的大模型。但是在微调时我们时常面对一个问题,就是数据集问题。网络上有许多开源数据集,但是很多时候我们并不想用这些数据集微调模型,我们更希望使用某本书、某个作者......
  • 在 GUI 按钮构造函数中使用 lambda 函数作为命令选项
    我的问题是关于在用于为下面这个Python计算器创建GUI按钮的语法中使用lambda函数。问题:我对如何编写lambda函数的理解如下1)中所示,那么它怎么可能按照2)中GUI按钮构造函数的命令选项中编写的方式编写它?计算器的完整代码如下。此Python计算器教程的视频......