首页 > 其他分享 >通过构造函数实现属性赋值(含有具体例子)

通过构造函数实现属性赋值(含有具体例子)

时间:2024-03-14 13:00:27浏览次数:17  
标签:构造函数 defence 属性 int System health println out 赋值

一、什么是构造函数?

new关键字实际上是在调用一个方法,这个方法叫构造方法(构造器)
调用构造器的时候,如果你的类中没有写构造器,那么系统会默认给你分配一个构造器,只是我们看不到罢了。可以自己显式 的将构造器编写出来:
构造器的格式:
[修饰符] 构造器的名字(){
}
构造器和方法的区别:
1.没有方法的返回值类型
2.方法体内部不能有return语句
3.构造器的名字很特殊,必须跟类名一样


二、怎么编写构造函数代码

1.我们先定义属性

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

2.当形参名字和属性名字重名的时候,会出现就近原则,使用局部变量的参数

在这里插入图片描述

2.我们要想正确传入参数,就要在表示对象的属性前加上this.来修饰 ,因为this代表的就是你创建的那个对象,如下图所示。

在这里插入图片描述

3.构造函数有快捷方法右键点击Generate

在这里插入图片描述

4.然后点击Constructor

在这里插入图片描述

三、我们通过题目练习以下这个方法

题目要求

1、通过构造函数实现属性赋值

2、攻击方法,描述攻击状态。内容包括怪物名字,生命值,攻击 力

3、防御方法通过输入参数接收攻击力。需要判断,如果攻击力小 于防御力,伤害值=0;反之伤害值=攻击力-防御力 ,根据伤害值情况,显示不同的防御信息。内容包括怪物名字, 防御力,防御后的生命值

4、编写测试方法,通过构造函数实例化怪物类的对象,并调用 相关方法(测试数据信息自定)

参考分析思路:

参怪物类属 性包括:怪物名字、生命值、攻击力、防御力;

方法包括:攻击的方法,防御的方法

运行得到以下结果:

在这里插入图片描述

四、代码部分

1.我们接下来编写一个代码试着用一下这个方法,第一个类名Guaishou

package shenbao;

public class Guaishou {
    String name;
    int health;
   int attack;
   int defence;

    public Guaishou(String name, int health, int attack, int defence) {
        this.name = name;
        this.health = health;
        this.attack = attack;
        this.defence = defence;
    }

    public void show(){
        System.out.println("怪兽小龟展开攻击");
        System.out.println("当前的生命值是:"+health);
        System.out.println("攻击力是:"+attack);
        System.out.println("=====================");
    }
    public void show1(int attack1){
            if (defence>attack1){
            System.out.println("防御成功");
            System.out.println("当前生命值"+health);
        }else{
            System.out.println("防御失败!");
            System.out.println("怪兽小龟以"+defence+"的防御力未能抵御进攻!");
            System.out.println("当前生命值:"+(health-(attack1-defence)));
        }
    }
}


2.第二个类名叫Guaishoutest:

package shenbao;

public class Guaishoutest {
    public static void main(String[] args) {
        Guaishou gs=new Guaishou("怪兽小龟",200,50,10) ;
        gs.show();
        gs.show1(15);


    }
}


3.运行结果

在这里插入图片描述


总结

构造器的作用:不是为了创建对象,因为在调用构造器之前,这个对象就已经创建好了,并且属性有默认的初始化的值。
调用构造器的目的是给属性进行赋值操作的。

标签:构造函数,defence,属性,int,System,health,println,out,赋值
From: https://blog.csdn.net/qq_48854032/article/details/136693011

相关文章

  • springboot3+vue3(十)springboot属性配置方式
    在项目中如端口号等配置信息在yml配置文件中,打包发布后这些信息运维人员无法进行修改的问题时有发生,如:改变项目运行的端口号等。我们除了在项目的yml配置文件中配置外,还有以下三种配置方法:1、命令行参数方式 --键=值    例如:我们想把项目的端口改为9999  --server.p......
  • 详解c++多态中的析构与构造函数
    首先简单介绍一下多态。多态是面向对象编程中的概念,它允许我们使用基类类型的指针或引用来调用派生类对象的方法。C++中实现多态主要依靠虚函数和动态绑定。那怎么使用多态呢?基类指针或引用指向派生类对象。在我学习过程中,这些概念耳熟能详,但是为什么要有多态呢,先看下面这......
  • c++:类和对象中:拷贝构造和赋值运算符重载详解
    c++:类和对象构造函数和析构函数详解`文章目录c++:类和对象构造函数和析构函数详解前言一、拷贝构造怎么写拷贝构造1.拷贝构造也是构造函数的一种,构造函数没有值.所以拷贝构造也没有返回值**2.拷贝构造只有一个形参,正常这个形参是自定义类型对象的引用.3.如果我们......
  • Css基础——vertical-align属性
    1、vertical-align的定义CSS的vertical-align属性使用场景:经常用于设置图片或者表单(行内块元素)和文字垂直对齐。官方解释:用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效。2、vertical-align的语法vertical-align:baseline|top|midd......
  • SEO 链接属性之Rel:Nofollow,Noopener,Noreferrer和其他
    比较常见使用的dofollow,nofollow,noopener,noreferrer和canonical有着怎样的使用场景及区别?1.<a>标签通常会配合着使用noopener,noreferrer及nofollow这些属性,它们的作用及用法如下。noopener当给链接加上target="_blank"后,目标网页会在新的标签页中打开,此时在新打开的页面......
  • Shopify 商品售卖属性优化插件之G:Variant Image + Color Swatch
    推荐一款很赞的Shopify商品售卖属性呈现样式优化的APP(G:VariantImage+ColorSwatch)安装此类插件列表页效果对比 图片来源:shejolly.com安装此类插件详情页效果对比未安装插件效果,图片来源:shejolly.com已安装插件效果,图片来源:shejolly.com未......
  • 淘宝京东1688...按关键词搜索商品数据,商品详情数据(属性详情图,价格,sku等)批量采集,请求示
    在淘宝、京东、1688等电商平台上,按关键词搜索商品数据以及批量采集商品详情数据(如属性详情图、价格、SKU等)通常涉及到使用平台的API接口。以下是一个简化的请求示例说明,以帮助您理解这个过程。请求示例,API接口接入Anzexi581.了解API接口API接口是一种允许不同软件应用程序......
  • 使用@FeignClient中的fallback属性处理接口调用异常问题
    说明当使用feign远程调用接口是,如果接口返回异常或者超时时,我们可以统一返回异常信息,这样调用者就不用再显式的try-catch处理异常了开启接口fallback处理想要使用fallback处理接口异常须在配置文件开启feign:hystrix:enabled:true定义feign接口在@FeignClient上......
  • [C++]c++ 在项目cpp文件中直接用#pragma comment语句引入,无需配置属性表
    使用语句添加引入库的好处就是无需配置多个属性表,不管是debug模式还是release模式,不管是64位还是32位,几行代码通吃。相对路径:#ifdef_M_X64#pragmacomment(lib,"../../../VC++/DVPCamera64.lib")#else#pragmacomment(lib,"../../../VC++/DVPCamera32.lib")#endif绝......
  • C#构造函数
    C#中的构造函数是一种特殊的方法,用于创建和初始化类的对象。构造函数的名称与类的名称相同,并且没有返回类型。在C#中,构造函数有以下几种类型:默认构造函数:如果在类中没有定义构造函数,系统将自动提供一个默认构造函数。默认构造函数没有任何参数,并且什么都不做。带参数的构......