Java方法03——构造方法与可变参数

简介: Java方法03——构造方法与可变参数

Java方法03——构造方法与可变参数

我们应该有恒心,尤其要有自信心——居里夫人

本篇笔记简介一、拓展知识-->二、构造方法-->三、可变参数

目录


一、拓展知识:命令行传参

①为什么要了解命令行传参?

有时候你希望运行一个程序时候再传递给它消息。

这要靠传递命令行参数给main()函数实现。

②命令行形参是什么?

命令行参数是在执行程序时候紧跟在程序名字后面的信息。


二、构造方法

ps:构造方法,可以联系C++中的构造函数来加以理解。

1构造方法的作用:

当一个对象被创建时候,构造方法用来初始化该对象。

2.关于构造方法的几点说明:

①构造方法与它的类名相同,它无返回值。

②通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。

③不管你是否自定义构造方法,所有的类都会有构造方法——默认构造方法,它的访问修饰符和类的访问修饰符相同即类为 public,构造函数也为 public。

④一旦有自定义的构造方法,默认构造方法就会失效。

3.实例助解:

简单构造方法实现:调用构造方法来初始化一个对象

// 一个简单的构造方法
class MyClass {
  int x;
  //Myclass中的构造方法
  MyClass() {  //如果没有这个自定义的构造方法,类在构造初始化时,会调用默认的构造方法。
    x = 5;
  }
   public static void main(String args[]) {
      MyClass c1 = new MyClass();
      MyClass c2 = new MyClass();
        System.out.println(c1.x + " " + c2.x);
   }
}

输出演示如图:


三、可变参数

1.预备知识

Java支持传递同类型的可变参数给一个方法。(JDK1.5时加入)

2.可变参数理解

java 可变参数是1.5版本的新特性,意思其实就是:用户若是想定义一个方法,但是并不知道以后要用的时候,到底要传几个参数进去,这时可以在方法的参数列表中写参数类型或者数组名,然后在方法内部直接用操作数组的方式操作。

①可变适用于:

参数个数不确定,类型确定的情况,java把可变参数当做数组处理。

②方法的可变参数的声明如下所示:

typeName... parameterName

在方法声明中,在指定参数类型后加一个省略号(…) 。

③注意:

  • 一个方法中只能指定一个可变参数;
  • 它必须是方法的最后一个参数。
  • 任何普通的参数必须在它之前声明。

④ ③中注意部分解释

ps: a.和b.结合起来理解

a.一个方法为什么只能指定一个可变参数?

因为当可变参数个数大于1时,至少会有一个不是最后一项,所以只支持有一个可变参数。

b.可变参数为什么必须要是方法的最后一个参数呢?

因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数,还是后边的参数,可变参数只能位于最后一项。

3.实例助解:
public static void main(String args[]) {
        // 调用可变参数的方法
        Max(1, 3, 7.7, 5.5, 9);
        Max(new double[]{1, 2, 3});
    }
    public static void Max( double... numbers) {
        if (numbers.length == 0) {
            System.out.println("没有参数通过");
            return;
        }
        double result = numbers[0];
        for (int i = 1; i < numbers.length; i++){ //for循环,实现大小比较
            if (numbers[i] > result) {
                result = numbers[i];
            }
        }
        System.out.println("最大值为:" + result);
    }

输出演示如图:


作者:Code_流苏(一个喜欢古诗词和编程的Coder😊)

★喜欢的话,还请多多点赞与关注! 感谢支持!

笔记更新随个人学习进度而进行,欢迎评论交流学习!


目录
相关文章
|
1月前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
1月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
74 9
|
28天前
|
安全 Java 开发者
Java中WAIT和NOTIFY方法必须在同步块中调用的原因
在Java多线程编程中,`wait()`和`notify()`方法是实现线程间协作的关键。这两个方法必须在同步块或同步方法中调用,这一要求背后有着深刻的原因。本文将深入探讨为什么`wait()`和`notify()`方法必须在同步块中调用,以及这一机制如何确保线程安全和避免死锁。
41 4
|
28天前
|
Java
深入探讨Java中的中断机制:INTERRUPTED和ISINTERRUPTED方法详解
在Java多线程编程中,中断机制是协调线程行为的重要手段。了解和正确使用中断机制对于编写高效、可靠的并发程序至关重要。本文将深入探讨Java中的`Thread.interrupted()`和`Thread.isInterrupted()`方法的区别及其应用场景。
28 4
|
26天前
|
Java 数据处理 数据安全/隐私保护
Java处理数据接口方法
Java处理数据接口方法
26 1
|
1月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
128 4
|
1月前
|
Java 程序员 数据库连接
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
本文详细介绍了Java中的初始化块,包括静态初始化块和非静态初始化块的概念、执行顺序和实际应用场景。通过具体示例,帮助读者理解这两种初始化块的区别和使用场景,让面试官对你刮目相看。
36 0
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
|
1月前
|
Java
在Java中定义一个不做事且没有参数的构造方法的作用
Java程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用super()来调用父类中特定的构造方法,则编译时将发生错误,因为Java程序在父类中找不到没有参数的构造方法可供执行。解决办法是在父类里加上一个不做事且没有参数的构造方法。
|
Java
编写Java程序,通过给定可变参数方法,计算任意给定的多个int类型数据之和
编写Java程序,通过给定可变参数方法,计算任意给定的多个int类型数据之和
262 0
|
2天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。