Java重点之-构造器的梳理

构造器

构造器的作用

  • 构造器作为Java类的一个特殊的成员同样可以设置关键字来控制其访问权限。在大多数情况下,我们一般把构造器设置为公有成员,即public的,在默认情况下,如果不写任何关键字,其访问权限也是public。这样,在我们新建一个类的对象的时候,构造器会创建对象后被自动调用,发生在其他类成员被设置为默认初始值之后,当然如果有字段初始器和初始化块的话,构造器的调用会发生在此之后。构造器的主要作用是在new将对象的引用返回之前初始化对象。简而言之:对对象的属性进行初始化,如果我们不自己创建构造方法,系统会自动调用默认的无参的构造方法。

构造器的基本构成

  • 要点:修饰词、方法名、参数列表、构造体。
  • 具体格式:
	修饰词 方法名(参数列表) {
	  	构造体
	  }	

##创建非系统的构造器

  • 分类:
    • 无参的构造方法:会将成员变量初始化为null或0或false
    • 有参的构造方法:会将成员变量进行初始化并赋值(赋值成为通过参数传入的值)

构造器的分类

  • 私有构造器:
    • 解释:所谓私有构造器,就是用private关键字声明的构造器。与一般公有构造器最大的区别在于,其访问权限是private,于是它只能被包含它的类自身所访问,而无法在类的外部调用,故而可以阻止对象的生成。所以,如果一个类只有一个私有构造器,而没有任何公有构造器,是无法生成任何对象的。
    • 作用:在单例模式中,创建一个单例的类的时候就必须使用私有的构造器,为的是不让外部创建对象,直接在类的内部创建一个唯一的对象共所有的其它外部函数使用。
    • 实例代码:
	class SingleInstance2 {
		private static final SingleInstance2 singleInstance2 = new SingleInstance2();//类的内部直接生产一个对象共外部使用
		private SingleInstance2() {//私有化构造器
			super();
			// TODO Auto-generated constructor stub
		}
		public static SingleInstance2 getSingleinstance(){//方便于外界得到这个唯一的类对象
			return singleInstance2;
		}
	 }

	public static void main(String[] args) {
		SingleInstance2 singleInstance2 = SingleInstance2.getSingleinstance();//通过类的公有的方法得到这个对象。
	}			
  • 公有构造器:
    • 解释:所谓公有构造器,相比较于公有构造器而言,其声明的方式为public关键字,它可以被外部的函数访问,访问的方法就是new一个这个类,生成一个对象,比较于私有构造器它的不同点在于能够在外部使用,而私有的构造器只能在类的内部被访问。
    • 作用:对对象的属性进行初始化,如果我们不自己创建构造方法,系统会自动调用默认的无参的构造方法
    • 实例代码:
	class Person {
		String name;
		int age;
		
		public Person() {//创建公有的构造器
			super();
			// TODO Auto-generated constructor stub
		}
	}

	public static void main(String[] args) {
		Person person = new Person();//使用Person的公有构造器创建一个对象
	}	

注意点

  • 没有返回值
  • 方法名必须与当前的类名相同
  • 一旦创建自己的构造方法,就不会再去调用系统默认的构造方法了
  • 多个构造方法之间是重载关系
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,构造函数是一个特殊的方法,用于创建和初始化一个对象。可以使用构造函数来指定对象的初始状态,为其成员变量赋初值,并执行一些必要的操作。 在ptajava2学生类中,构造函数可以用来初始化学生对象的属性。通常情况下,一个学生对象应该具有姓名、年龄、性别等基本信息。 构造函数的定义通常与类的名称相同,没有返回类型,并且在创建对象时自动调用。在学生类的构造函数中,我们可以传递参数来设置学生的姓名、年龄和性别,以便在对象创建时将其赋值给相应的属性。 例如,定义一个名为Student的类,可以定义一个构造函数如下: public class Student { private String name; // 学生姓名 private int age; // 学生年龄 private String gender; // 学生性别 // 构造函数 public Student(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } // 其他成员方法 // ... } 在上面的代码中,我们在Student类中定义了一个构造函数,它接受三个参数:name、age和gender,并将它们分别赋值给对应的成员变量。这样,在创建学生对象时,可以通过调用构造函数并传入相应的参数来初始化该对象的属性。 例如,可以使用以下代码创建一个名为"张三"、年龄为18岁、性别为"男"的学生对象: Student student = new Student("张三", 18, "男"); 通过构造函数,我们可以在创建对象时方便地设置学生的初始属性,使得对象的创建和初始化过程更加简洁和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值