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😊)

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

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


目录
相关文章
|
13天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
53 4
|
24天前
|
Java API
Java 对象释放与 finalize 方法
关于 Java 对象释放的疑惑解答,以及 finalize 方法的相关知识。
43 17
|
17天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
32 2
|
16天前
|
Java 程序员 数据库连接
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
本文详细介绍了Java中的初始化块,包括静态初始化块和非静态初始化块的概念、执行顺序和实际应用场景。通过具体示例,帮助读者理解这两种初始化块的区别和使用场景,让面试官对你刮目相看。
26 0
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
|
25天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
19 3
|
25天前
|
Java 开发者
在Java多线程编程中,选择合适的线程创建方法至关重要
【10月更文挑战第20天】在Java多线程编程中,选择合适的线程创建方法至关重要。本文通过案例分析,探讨了继承Thread类和实现Runnable接口两种方法的优缺点及适用场景,帮助开发者做出明智的选择。
16 2
|
25天前
|
安全 Java
Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧
【10月更文挑战第20天】Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧,包括避免在循环外调用wait()、优先使用notifyAll()、确保线程安全及处理InterruptedException等,帮助读者更好地掌握这些方法的应用。
16 1
|
19天前
|
Java Spring
JAVA获取重定向地址URL的两种方法
【10月更文挑战第17天】本文介绍了两种在Java中获取HTTP响应头中的Location字段的方法:一种是使用HttpURLConnection,另一种是使用Spring的RestTemplate。通过设置连接超时和禁用自动重定向,确保请求按预期执行。此外,还提供了一个自定义的`NoRedirectSimpleClientHttpRequestFactory`类,用于禁用RestTemplate的自动重定向功能。
java202303java学习笔记第四十天反射获取构造方法1
java202303java学习笔记第四十天反射获取构造方法1
58 0
|
存储 Java Spring
java笔记之反射机制(方法&构造方法)
如何获取Class 1.Class中静态方法 forName("类全名") 2.类.class关键字 3.对象引用.getClass()方法 Class中的常用方法 int = getModifiers(); 获取类的修饰符(权限+特征) String = getName(); 获取类的全名(包名.类名) String = getSimpleName(); 获取类简单名(只有类名 缺少包) Class = getSuperClass(); 获取当前类父类的对应Class Class[] = getInterfaces(); 获取当前类父亲接口 Package
117 0