首页 > 其他分享 >Day48 构造器详解

Day48 构造器详解

时间:2024-01-11 16:47:42浏览次数:34  
标签:无参 name 构造 Person 详解 Day48 new public

构造器详解

  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下俩个特点:

  • 1.必须和类的名字相同

  • 2.必须没有返回类型,也不能写void

  • 构造器必须要掌握

1.Person.class文件与Person.java文件进行对比

在idea的out文件夹下面打开同名的class文件,与java同名原文件进行比对发现

多了一串方法,且这个方法没有返回值,另外,方法的名字跟类名相同

所以一个类即使什么都不写,也会存在一个方法(无参构造方法)

public Person() {
}

2.new实例化调用构造

2.1 调用无参构造(Person person = new Person( );)

2.2调用有参构造(Person person = new Person("aug");)

注意 使用new实例化对象必须要有一个构造器

可以是无参构造(class默认就有) 一般来说无参构造里面不写任何东西

也可以是有参构造( 一旦定义了有参构造,无参构造必须显示定义)

3.Alt + Insert快捷键 自动创建有参/无参方法

4.Person.java(笔记整理)一旦定义了有参构造,无参构造必须显示定义

package com.oop.demo02;
//java ---> class
public class Person {
//一个类即使什么都不写,也会存在一个方法(构造方法)
//显示定义的构造器
    String name;
    int age;

   //alt + insert 快捷键生成无参/有参构造器

    //1.使用new关键字,本质是在调用构造器
    //2.用来初始化值


    //无参构造
    public Person(){
        
    }//与类名相同且没有返回值类型跟void的方法


    //有参构造:一旦定义了有参构造,无参构造必须显示定义
    public Person(String name){
        this.name = name;//前面的name代表对象本身的name
        //后面的那么代表参数(String name)传递下来的name
    }


    //下面的用快捷键 按住ctrl全选两个age,name 点击OK 直接生成有参构造
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}


//笔记整理 
/*
 public static void main(String[] args) {

        //new 实例化了一个对象
        Person person = new Person("aug",24);

        System.out.println(person.name);
        System.out.println(person.age);
    }
    构造器:
         1. 和类名相同
         2. 没有返回值
    作用:
         1.new 本质在调用构造方法
         2.初始化对象的值
    注意点:
         1.定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造

    Alt + Insert快捷键 生成有参/无参

    this. =    (前面this. 一般代表这个类的   = 后面的一般是参数传进来的)
 */



5.Application

package com.oop.demo02;

//一个项目应该只存在一个main方法
public class Application {
    public static void main(String[] args) {

        //new 实例化了一个对象
        Person person = new Person("aug",24);

        System.out.println(person.name);//aug
        System.out.println(person.age);//24
    }
}

标签:无参,name,构造,Person,详解,Day48,new,public
From: https://www.cnblogs.com/baixiaofan/p/17958852

相关文章

  • Jenkins简介及安装配置详解:开启持续集成之旅
    Jenkins简介及安装配置详解:开启持续集成之旅一、Jenkins介绍Jenkins是一个开源的、用Java编写的持续集成和持续交付(CI/CD)工具。它提供了一种简单易用的方式来自动化构建、测试和部署软件。Jenkins的主要目标是帮助开发团队加快软件开发过程,提高软件质量,并通过自动化流程减......
  • 全网最详细的线程池 ThreadPoolExecutor 详解,建议收藏!
    一、ThreadPoolExecutor类讲解1、线程池状态:五种状态:线程池的shutdown()方法,将线程池由RUNNING(运行状态)转换为SHUTDOWN状态线程池的shutdownNow()方法,将线程池由RUNNING或SHUTDOWN状态转换为STOP状态。注:SHUTDOWN状态和STOP状态先会转变为TIDYING状态,最终......
  • Unity3D 性能杀手Overdraw详解
    前言Unity3D是一款强大的游戏开发引擎,但在使用过程中,我们需要注意一些可能会影响游戏性能的因素。其中之一就是Overdraw(过度绘制),它可以成为性能杀手。本文将详细解释Overdraw的概念、原因以及如何通过代码实现来减少Overdraw对游戏性能的影响。对惹,这里有一个游戏开发交流小组,希......
  • 详解白帽子以及红队、蓝队和紫队
    企业继续数字化,其关键基础设施和运营扩大了攻击面,暴露于各种威胁途径的面前。为了解决这个问题,企业领导者认识到拥有内部专家的重要性。考虑到网络威胁领域不断发展的态势,企业领导者可以利用道德黑客以及红队、蓝队和紫队的工作,比恶意攻击者和高级持续性威胁(APT)领先一步。这些实践......
  • lc 2645. 构造有效字符串的最少插入数
    给你一个字符串word,你可以向其中任何位置插入"a"、"b"或"c"任意次,返回使word有效需要插入的最少字母数。如果字符串可以由"abc"串联多次得到,则认为该字符串有效。样例1输入:word="b"输出:2解释:在"b"之前插入"a",在"b"之后插入"c"可以得到有......
  • 基于k8s Deployment的弹性扩缩容及滚动发布机制详解
    k8s第一个重要设计思想:控制器模式。k8s里第一个控制器模式的完整实现:Deployment。它实现了k8s一大重要功能:Pod的“水平扩展/收缩”(horizontalscalingout/in)。该功能从PaaS时代开始就是一个平台级项目必备编排能力。若你更新了Deployment的Pod模板(如修改容器的镜像),则Deployment......
  • linux之信号操作(九千字长文详解)
    linux之信号操作sigset_t这是信号在内核中的表示==block和pending都是位图——即用bit位来表示信号编号!==每个信号只有一个bit的未决标志,非0即1,不记录该信号产生了多少次,阻塞标志也是这样表示的。因此,未决和阻塞标志可以用==相同的数据类型sigset_t==来存储,==sigset_t......
  • Unity DOTS物理引擎的核心分析与详解
    最近DOTS发布了正式的版本,同时基于DOTS的理念实现了一套高性能的物理引擎,今天我们来给大家分享和介绍一下这个物理引擎的使用。Unity.Physics的设计哲学 Unity.Physics是基于DOTS设计思想的一个高性能C#物理引擎的实现,  包含了物理刚体的迭代计算与碰撞检测等查询。Unity.P......
  • Unity3D 最后一次drawcall 如何避免详解
    Unity3D是一款广泛使用的游戏开发引擎,它基于C#编程语言,可以实现跨平台的游戏开发。在Unity3D中,drawcall是一个非常重要的概念,它指的是渲染引擎每次渲染物体时所调用的函数。过多的drawcall会导致游戏性能下降,因此我们需要采取一些措施来避免过多的drawcall。对啦!这里有个游戏开发......
  • Unity3D 如何把全部游戏逻辑都放到lua层实现详解
    Unity3D是一款非常流行的游戏开发引擎,它支持C#、JavaScript和Boo等脚本语言。然而,有时候我们可能希望将全部游戏逻辑都放到Lua层实现,这样可以更方便地进行游戏逻辑的修改和调试。本文将详细介绍如何使用Unity3D将全部游戏逻辑都放到Lua层实现。对啦!这里有个游戏开发交流小组里面......