我是靠谱客的博主 怡然薯片,这篇文章主要介绍JAVA构造方法(与类名相同的方法),类方法与实例方法,现在分享给大家,希望可以做个参考。

构造方法

跟类名相同的方法名被称作构造方法,其作用是用于当一个类被new成对象时,对象需要声明的一些变量的构造声明。

构造方法的特点:

(1)构造方法的名字必须与定义他的类名完全相同(甚至连void也没有),且没有返回类型;

(2)构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。举例如下:

复制代码
1
2
Person p = new Person(); //person()调用的就是Person的构造方法

(3)每个类可以有零个或多个构造方法;

(4)不能被static、final、synchronized、abstract和native修饰。且构造方法不能被子类继承。

(5)构造方法在创建对象时自动执行,一般不能显式地直接调用。
类方法

构造方法一般分为两类(无参的构造方法和有参的构造方法)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* * 无参构造方法 */ class Banana{ public Banana() { System.out.println("无参的构造方法被调用,这里是香蕉"); } } public class text3 { public static void main(String[] args) { Banana s = new Banana(); } }

在这里插入图片描述
从代码和结果可以看出,“new Banana()”除了实例化对象,还调用了构造方法Banana();

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* * 有参构造方法 */ class Apple{ int size; public Apple(int a) { System.out.println("有参的构造方法被调用,这里是苹果"); size = a; } public void shuchu() { System.out.println("这个苹果有" + size + "这么大"); } } public class text3 { public static void main(String[] args) { Apple s = new Apple(18); s.shuchu(); } }

在这里插入图片描述
从代码和结果可以看到“Apple(int a)”这是一个有参的构造方法,在“new Apple(18)”实例化对象的同时把参数传给a赋值给size并调用了shuchu()这个构造方法。

构造方法的重载
构造方法也可以重载,在一个中只要构造方法的参数类型或参数个数不同即可。用不同的构造方法可以给不同的属性赋值。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* * 构造方法的重载 */ class Food{ String name; int size; public Food(String b , int a) { name = b; size = a; } public Food(String b) { name = b; } public Food(int a) { size = a; } public void shuchu() { System.out.println("这个" + name +"有" + size + "这么大"); } } public class text4 { public static void main(String[] args) { Food s = new Food("苹果"); Food x = new Food("草莓",18); Food z = new Food(20); s.shuchu(); x.shuchu(); z.shuchu(); } }

在这里插入图片描述
根据代码看出People类中定义了三个构造方法,它们构成了重载。

类方法(静态方法,用static修饰的方法)

类方法是属于整个类的,所以类方法的方法体中不能有与类的对象有关的内容。
即类方法体有如下限制:
1.类方法中不能引用对象变量;
2.类方法中不能调用类的对象方法;
3.类方法不能被覆盖(重写);
4.在类方法中不能调使用super,this关键字;

实例方法

当一个类创建了一个对象后,这个对象就可以调用该类的方法(对象方法)。

1.实例方法中可以引用对象变量;
2.实例方法中可以引用类变量;
3.实例方法中可以调用类方法;
4.对象方法中可以使用super,this关键字;

类方法与实例方法的区别

类方法在加载类时就被分配了内存地址,因此加载后即可被任意对象调用,并且可以通过类名直接调用(类名.方法名),而实例方法需要在创建对象后才会被分配内存地址,所以实例方法不能通过类名调用。

复制代码
1
2
3
4
注意: 当我们创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址。 也就是说,方法的入口地址被所有的对象共享,当所有的对象都不存在时,方法的入口地址才被取消。 在Java语言中,类中的类方法不可以操作实例变量,也不可以调用实例方法, 这是因为在类创建对象之前,实例成员变量还没有分配内存,而且实例方法也没有入口地址。

最后

以上就是怡然薯片最近收集整理的关于JAVA构造方法(与类名相同的方法),类方法与实例方法的全部内容,更多相关JAVA构造方法(与类名相同内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部