java构造方法的作用总结
作者:藏色散人 时间:2023-05-31 00:54:45
首先了解java构造函数怎么写
java构造方法必须满足以下语法规则:
(1) 方法名必须与类名相同。
(2)不要声明返回类型。
(3)不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承,所以用final和abstract修饰没有意义。
构造方法用于初始化一个新建的对象,所以用static修饰没有意义。多个线程不会同时创建内存地址相同的同一个对象,因此用synchronized修饰没有必要。
此外,Java语言不支持native类型的构造方法。
public class Sample {
private int x;
public Sample() { // 不带参数的构造方法
this(1);
}
public Sample(int x) { //带参数的构造方法
this.x=x;
}
public int Sample(int x) { //不是构造方法
return x++;
}
}
java构造方法作用就是对类进行初始化。 如果你没有定议任何构造方法的形式,程式会为你取一个不带任何参数的构造函数,那么你产生类的对像时只能用不带参数的方法,如:class a {}//没有任何构造函数。
构造方法就是与类同名的那个方法,它的作用是可以用来初始化,例子如下
class Person //人类{
public Person(String n,int a) //构造方法
{
name = n; age = a;
}
private string name;
private int age;
}
static void main(String[] args){
Person p = new Person("张三",14);//这就是作用
}
new一个对象的时候要用到构造函数,
例如
Hello hello = new Hello();
这时调用的是Hello的无参数构造方法;
Hello hello = new Hello("hi");
这个是调用Hello有参数构造方法,
在JAVA中如果不写构造方法的话,会默认加上一个无参数的构造方法,但是如果已经有了一个有参数的构造方法,那么无参数的构造方法就不会默认被加上.
如果Hello类中已经有了一个有参数的构造方法,这时再使用 Hello hello = new Hello();来创建对象的时候就会出错,这就是为什么书上要强调写了有参数的构造方法就最好加一个无参数的构造方法.
标签:java,构造方法
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
深入解析Java接口(interface)的使用
2022-05-07 07:50:51
浅析C# 委托(Delegate)
2023-01-26 20:11:45
无法从 int? 转换为 int 运行时出现错误
2022-01-02 08:26:11
![](https://img.aspxhome.com/file/2023/1/96361_0s.png)
C# List实现行转列的通用方案
2022-03-28 02:53:04
![](https://img.aspxhome.com/file/2023/4/75614_0s.png)
SpringBoot中ApplicationEvent和ApplicationListener用法小结
2021-08-11 07:43:04
![](https://img.aspxhome.com/file/2023/2/88162_0s.jpg)
Android Studio gradle 编译提示‘default not found’ 解决办法
2023-07-19 09:23:06
Spring Boot深入排查 java.lang.ArrayStoreException异常
2023-07-11 16:31:27
C#中流的使用和分类
2022-10-04 22:17:41
![](https://img.aspxhome.com/file/2023/4/91244_0s.png)
springboot集成shiro权限管理简单实现
2023-10-27 13:39:02
![](https://img.aspxhome.com/file/2023/9/79959_0s.png)
Java使用Preference类保存上一次记录的方法
2023-05-08 01:49:14
java实现word文档转pdf并添加水印的方法详解
2023-05-26 02:59:18
![](https://img.aspxhome.com/file/2023/9/62139_0s.png)
使用java代码获取新浪微博应用的access token代码实例
2023-12-01 20:18:30
Java中避免空指针异常的方法
2023-05-08 21:00:27
VSCode 搭建 Arm 远程调试环境的步骤详解
2023-06-27 08:54:36
![](https://img.aspxhome.com/file/2023/8/104448_0s.png)
Java多线程Future松获取异步任务结果轻松实现
2022-11-22 15:49:38
![](https://img.aspxhome.com/file/2023/9/89589_0s.jpg)
C# DataGridView绑定数据源的方法
2023-06-30 00:26:39
解决idea 项目编译后没有class文件的问题
2023-11-04 07:55:06
![](https://img.aspxhome.com/file/2023/9/97809_0s.jpg)
java新手入门——String类详解
2022-02-23 08:17:26
![](https://img.aspxhome.com/file/2023/6/70576_0s.png)
Java实现查找当前字符串最大回文串代码分享
2023-07-30 04:05:02
实现一个基于Servlet的hello world程序详解步骤
2022-06-21 00:22:13
![](https://img.aspxhome.com/file/2023/9/75009_0s.png)