方法的构造

本文深入解析Java中的构造方法,包括其特殊性质、如何用于对象初始化、重载特性以及私有化应用,特别是单例设计模式的懒汉和饿汉模式实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)方法的构造

(1)构造方法介绍

构造方法是一种特殊的成员方法,构造方法的作用是在创建对象时自动进行一些初始化操作构造方法的特征:
1.方法名和类名完全相同。
2.它不含返回值,甚至连void也没有。
3.不能被static、final、abstract、native等等修饰,但四种权限服都可以用。
4.使用new创建对象时,系统会自动调用构造方法。
5.构造方法可以重载,且四种权限符号都可以使用。
注意:每一个类都会有一个默认的无参构造方法,如果我们给该类定义了一个有参构造方法,则默认的无参构造方法消失。

/*
有参构造方法
name,age
this:当前对象
可以通过有参构造方法对当前对象的属性进行赋值。
*/
package com.soft.javase
public class Person{
String name;
int age;
//构造方法可以进行重载,也可通过有参构造方法对当前对象的属性进项赋值。
	public Person(String name,int age){
		this.name:当前对象的name属性
		this.age:当前对象的age属性
	}
//默认类的构造方法为空
	public Person(){
	
	}
/*
重toString():重写Object的toString方法()
作用:方便输出改对象的属性值
*/
	@Override
	public String toString(){
	return "Person [name=" + name ", age="+ age"]";
}
}

/*
对Person类进项测试,实例化
*/

package com.soft.javase

public class PersonTest
{
Person p1 = new Person("tomcat",12);
//输出类的属性
// System.out.println(p1.age+"\t"+p1.name+"\t");
System.out.println(p1.toString());
//System.out.println(p1);会默认调用参数toString()方法,等同于上一行语句。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
}

(2)构造方法的私有化

构造方法私有化的原因是为了保证在其他类中,不能直接通过new 构造方法()对该类进行实例化。
此时打开一个“窗口”使用类名.方法对私有类进行访问,估私有类的方法需要用静态修饰。

1.单例设计-懒汉模式

//在调用实例方法的时候才会实例化对象。
/*
1.私有化构造
2.提供public修饰的静态方法用来返回该类的实例。
*/
public class Dog{
	public String name;
	public int age ;
	//被静态方法调用,估也许静态定义
	private static Dog dog;
	public void lookDoor(){
		System.out.println("這是狗看門的方法");
	}
	private Dog() {
	}
	public static Dog getDodInstance() { //因为构造方法私有化,无法通过构造方法创建对象,只能通過类名.方法调用。
		if(dog==null) {
			dog= new Dog();
		}
			return dog;
	}
}

2.单例设计-饿汗模式

//会提前new一个Dog对象,然后返回给get后等待调用。
/*
1.私有化构造。
2.提供一个静态的类型变量并进行赋值。
3.编写一个public的方法,用来返回静态类型的变量。
*/
public class Dog{
	private static Dog dog=new Dog();
	public void lookDoor(){
		System.out.println("這是狗看門的方法");
	}
	private Dog() {
	}
	public static Dog getDodInstance() { //只能通過类名.方法调用。
			return dog;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值