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

概述

构造方法

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

构造方法的特点:

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

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

    Person p = new Person();	//person()调用的就是Person的构造方法

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

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

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

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

/*
 * 无参构造方法
 */
class Banana{
	public Banana() {
		System.out.println("无参的构造方法被调用,这里是香蕉");
	}
}
public class text3 {
 
	public static void main(String[] args) {
		Banana s = new Banana();
 
	}
}

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

/*
 * 有参构造方法
 */
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()这个构造方法。

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

/*
 * 构造方法的重载
 */
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关键字;

类方法与实例方法的区别

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

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

最后

以上就是怡然薯片为你收集整理的JAVA构造方法(与类名相同的方法),类方法与实例方法的全部内容,希望文章能够帮你解决JAVA构造方法(与类名相同的方法),类方法与实例方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部