首页 > 其他分享 >对象的初始化

对象的初始化

时间:2023-12-09 23:00:45浏览次数:27  
标签:初始化 name 对象 Person public 构造函数

对象的初始化常用到构造器(construct)来创建对象。

public Person (String name, int age ){
              this.name = name;
              this.age= age;   
}    

public static void main(String [] args){
              Person p = new Person ("Tom",15) ;
}

 

构造函数的重载:重名但参数不同。

public class Person(){
        private String name;
        private int age;

public Person(){
        name = "";
        age = 0;
}

public Person (String name, int age ){
              this.name = name;
              this.age= age;   
    }    
}    

一个构造函数调用另一个构造函数。

public Person(){
    this(" ",15);    //需要用到this关键字且放在第一行
}

若类没有构造器则会默认无参构造器。

 

 初始化块

  • 类内段单独用{}括起来的代码段
  • 创建对象的时候执行
  • 按照先后顺序执行
  • 先执行初始化块再构造函数
public class Person  {
    private int age;
    private String name;

    {
        System.out.println("初始化块1");
    }
    public Person() {
        System.out.println("无参构造函数");
    }

    {
        System.out.println("初始化块2");
    }
    

    public static void main(String[] args) {
        Person p = new Person();
    }
    
}

运行结果:

 对象的销毁

 

个人总结与体会:

  1. 明确对象的创建与初始化:在Java中,对象的创建与初始化是分开的。首先,通过new关键字创建一个新的对象实例。然后,通过调用构造函数或初始化方法来初始化对象的状态。
  2. 构造函数的作用:构造函数是一个特殊的方法,用于在对象创建时初始化对象的状态。它是在创建对象时自动调用的。构造函数与类同名,没有返回类型。
  3. 初始化的步骤:Java对象的初始化步骤通常包括:分配内存给对象的属性,然后使用构造函数或初始化方法来设置这些属性的初始值。
  4. 初始化的注意事项:在初始化Java对象时,需要注意以下几点:首先,要确保所有的属性都被正确地初始化;其次,如果对象依赖于其他资源(如文件、网络连接等),需要在初始化时进行资源分配;最后,如果对象在创建时需要接受参数,那么这些参数需要在构造函数中进行验证,以确保对象能够正确地被创建和使用。
  5. 初始化块:在Java中,可以使用初始化块(instance initializer block)或静态初始化块(static initializer block)来初始化对象或类的状态。这些块会在构造函数或初始化方法之前执行。
  6. 个人体会:Java对象的初始化是一个关键的编程概念,有助于我们更好地理解如何创建和管理对象。通过掌握对象的初始化过程,我们可以更好地理解Java的内存管理和垃圾回收机制。同时,正确的对象初始化也可以帮助我们避免许多常见的错误,如内存泄漏、空指针异常等。

标签:初始化,name,对象,Person,public,构造函数
From: https://www.cnblogs.com/one-1/p/17891968.html

相关文章

  • 为内核对象添加引用计数器(krefs)【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/core-api/kref.html为内核对象添加引用计数器(krefs)作者[email protected]作者[email protected]其中很多内容都是从GregKroah-Hartman的2004年OLS论文和关于krefs的演示中借鉴而来的,可以在......
  • Java对象的空值判断
    以前一直被java的NPE(NullPointerException)所谓的空指针异常搞的头昏脑涨,有大佬说过“防止NPE,是程序员的基本修养。”但是修养归修养,也是我们程序员最头疼的问题之一,那么我们今天就要尽可能的利用Java8的新特性Optional来尽量简化代码同时高效处理NPE(NullPointer......
  • JavaScript-history对象
    概述window.history属性指向History对象,它表示当前窗口的浏览历史。History对象保存了当前窗口访问过的所有页面网址。下面代码表示当前窗口一共访问过3个网址。window.history.length//3由于安全原因,浏览器不允许脚本读取这些地址,但是允许在地址之间导航。//后退到前一个网......
  • JAVA自定义对象序列化,自定义的控制每个字节的序列化情况
    在java中,正常来说序列化是可以直接继承Serializable,或使用类似于fastjson,protobuf等框架。但是这些框架对于二进制协议,自定义协议,私有协议方面却不太好使,私有协议大多还是按照字节的方式组织数据,对于java来说需要控制每个属性的序列化方式,所以这块主要还是以传统的方式,读字节......
  • Spring Boot学习随笔- @SpringBootApplication详解、加载绝对路径配置文件、工厂创建
    学习视频:【编程不良人】2021年SpringBoot最新最全教程3.5@SpringBootApplication详解这是一个组合注解,就是由多个注解组成。下列注解红框内称为元注解(jdk提供)@Target:指定注解作用范围@Retention:指定注解什么时候生效重要注解@SpringBootConfiguration:自动配置Spring......
  • Redis数据结构分析1:Redis对象
    Redis数据结构分析本篇将涉及C语言,请确保您拥有C语言相关基础与计算机底层知识RedisObject(robj)robj是Redis对象的起点,所有的数据结构都封装到了robj之中。其源码如下:structredisObject{unsignedtype:4;unsignedencoding:4;unsignedlru:LRU_BITS;......
  • 秦疆的Java课程笔记:64 面向对象 构造器详解
    类中的构造器也称为构造方法,世在进行创建对象的时候必须要调用的。并且构造器有以下两个特点必须和类的名字相同必须没有返回类型,也不能写void构造器必须掌握!一个类即使什么也没写,也会存在一个方法//写一个空的Person类=========================publicclassPer......
  • 使用Java实现面向对象编程 第八章 File IO 总结笔记
    java里操作文件1.第一步一定是获得这个文件(获得的文件,你是无法解析获得里面的内容,约等于获得冰。你只能知道大小颜色等。外表能够获取信息.)。2.第二步获得这个文件将这个文件转换成流。然后从这个io流里读取数据io流里又分为字符流(专门处理文字)字节流(专门处理2进制等文件)3.......
  • java JSON对象与字符串间的转换
    importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;//字符串转为JSON对象StringstrParam="{\"callerid\":\"013941128270\",\"timestart\":\"2021-07-2709:37:42\",\"status\"......
  • 鸿蒙原生应用开发——分布式数据对象
     01、什么是分布式数据对象在可信组网环境下,多个相互组网认证的设备将各自创建的对象加入同一个sessionId,使得加入的多个数据对象之间可以同步数据,也就是说,当某一数据对象属性发生变更时,其他数据对象会检测到这一变更,同时将自身属性更新。此时,该sessionId下的所有数据对象属......