java构造方法的互相调用方式

 更新时间:2024年03月27日 10:29:10   作者:一颗菘菜  
这篇文章主要介绍了java构造方法的互相调用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

java构造方法的互相调用

public Student(int age){
    super();
    this.age = age;
}
 
public Student(String name , int age){
    /*
        super(); 注意,这里不能再调用super();因为下边的this(age);调用了上方的构造器,已经存在了    
        super();该构造器内不能再次调用。所以只写一个this(age)就够了;
    */
    this(age);
    this.name = name;
}

其他的小细节

构造方法体内调用父类构造器( super(); )或重载构造器( this(); )时,应放在方法体内的第一行。

构造方法及其重载

1.构造方法

类中有一种特殊的成员方法,其方法名与类名相同,称为构造方法。

通过构造方法可以完成对象的创建,以及实例变量的初始化。

下面是一个构造方法示例:

public class Puppy{
  public Puppy( ) { }
  public Puppy(String name) {

       //这个构造器仅有一个name

      }
}  

每个类都有一个隐藏的无参构造函数。

public class Dog{
 
    /**
     * 带参构造函数
     * @param name
     * @param age
     */
    public Dog(String name,int age){
        this.age = age;
        this.name = name;
    }
 
    /**
     * 无惨构造函数
     */
    public Dog(){}
 
    String name;
    int age;
 
    public void ptint(){
        System.out.println("name = "+this.name+";age = "+age);
    }
 
    public static void main(String[] args) {
        new Dog().ptint();
        new Dog("花花",9).ptint();
    }
}

2.构造方法和对象的初始化

构造方法怎么调用,使用哪个运算符?

当使用new 运算符实例化一个对象时,系统为对象创建内存区域并自动调用构造方法初始化成员变量。

下面是new运算符实例化一个对象。

Puppy p = new Puppy( );
Puppy p1 = new Puppy(“张三”);

3.实例——用构造方法初始化成员变量

class Triangle
{
int x,y,z;
public Triangle(int i,int j,int k)
{  
x=i;y=j;z=k;
public static bpplean judge(Triangle m)
{ 
 if(Math.sqrt(m.x*m.x+m.y*m.y)= =Math.sqrt(m.z*m.z))
    //引用Math类库的sqrt()方法
    return true;
    else
    return false;
}
public static void main(String args[]) {
Triangle t1=new Triangle(3,4,5);
if(judge(t1))   //调用judge()方法,判断t1的成员变量是
    //否能构成直角三角形的3条边长
System.out.println("这是一个直角三角形");
else
System.out.Println("这不是一个直角三角形");
}
 
}

4.构造方法的特点

  • 构造方法名与类名必须一致,大小写也要一样。
  • 构造方法没有返回值,void类型也不写。
  • 在创建一个对象的时候,至少要调用一个构造方法。
  • 构造方法不能显式地直接调用。
  • 构造方法的主要作用是对对象初始化。
  • 修饰符列表目前统一写:public。千万不要写public static。

5.构造方法重载 

构造方法是支持方法重载的。在一个类当中构造方法可以有多个。并且所有的构造方法名字都是一样的。

对于实例变量来说,只要你在构造方法中没有手动给它赋值,统一都会默认赋值。默认赋系统值。

方法重载特点:

  • 重载的方法必须在同一个类中
  • 方法名相同
  • 参数列表不同(不包含参数名不同)
  • 方法的重载与访问修饰符和返回值类型无关

6.成员变量

类中的属性,也就是直接在类中定义的变量称作成员变量,它定义在方法外面。

局部变量就是定义在方法中的变量;一般情况下,局部变量在使用前需要赋值,否则会编译出错。

成员变量和局部变量的区别:

  • 作用域不同。局部变量的作用域仅限于定义它的方法,在该方法外无法访问它;成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用它,如果访问权限允许,还可以在类外部使用成员变量。
  • 初始值不同。成员变量在定义时可以不初始化,Java会给成员变量赋初始值;但是Java不会给局部变量赋初始值,因此在定义局部变量时必须初始化后再使用。
  • 在同一个方法中,不允许有同名的局部变量,在不同的方法中可以有同名的局部变量。
  • 局部变量可以和成员变量同名,并且在使用时,局部变量具有更高的优先级。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java BigDecimal精度丢失及常见问分析

    java BigDecimal精度丢失及常见问分析

    这篇文章主要为大家介绍了java BigDecimal精度丢失及常见问分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • JSON在Java中的使用方法实例

    JSON在Java中的使用方法实例

    对于java来说,json的对象也是分为JSONObject和JSONArray这两种,每种对象的操作方式不一样哦,下面这篇文章主要给大家介绍了关于JSON在Java中使用的相关资料,需要的朋友可以参考下
    2023-03-03
  • Java使用RedisTemplate如何根据前缀获取key列表

    Java使用RedisTemplate如何根据前缀获取key列表

    这篇文章主要介绍了Java使用RedisTemplate如何根据前缀获取key列表,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Java Calendar日历类的使用介绍

    Java Calendar日历类的使用介绍

    Candendar类是一个抽象类,提供了一些获取当前时间,或者指定的时间的字段和一些方法,我们可以通过一些方法与字段对他进行获取当前天或者当月的一些信息
    2022-09-09
  • java -jar启动参数设置file.encoding编码,解决中文乱码的问题

    java -jar启动参数设置file.encoding编码,解决中文乱码的问题

    这篇文章主要介绍了java -jar启动参数设置file.encoding编码,解决中文乱码的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 在Spring Boot中实现多环境配置的方法

    在Spring Boot中实现多环境配置的方法

    在SpringBoot中,实现多环境配置是一项重要且常用的功能,它允许开发者为不同的运行环境,这种方式简化了环境切换的复杂度,提高了项目的可维护性和灵活性,本文给大家介绍在Spring Boot中实现多环境配置的方法,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • JAVA验证码工具实例代码

    JAVA验证码工具实例代码

    这篇文章主要介绍了JAVA验证码工具实例代码,需要的朋友可以参考下
    2018-03-03
  • Java的面向对象编程基本概念学习笔记整理

    Java的面向对象编程基本概念学习笔记整理

    这篇文章主要介绍了Java的面向对象编程基本概念学习笔记整理,包括类与方法以及多态等支持面向对象语言中的重要特点,需要的朋友可以参考下
    2016-01-01
  • 本地JDK多版本快速切换方案

    本地JDK多版本快速切换方案

    本文将详细介绍如何在同一台机器上安装和配置多个版本的 JDK(JDK 8、JDK 17 和 JDK 21),并且使用绿色版(即无需安装程序,直接解压即可使用),通过这种方式,您可以在不同的项目中灵活选择所需的 JDK 版本,需要的朋友可以参考下
    2025-03-03
  • java版微信公众平台后台接入

    java版微信公众平台后台接入

    这篇文章主要为大家详细介绍了java版微信公众平台后台接入,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07

最新评论