小言_互联网的博客

Java8——类的成员之三:构造器(构造方法)

458人阅读  评论(0)


相关内容推荐: 类的成员之一:属性。类的成员之二:方 法、对象

一、构造器

1.构造器的特征

  • 它具有与类相同的名称
  • 它不声明返回值类型。(与声明为void不同,区别与方法需要定义返回值类型
  • 不能被static、final、synchronized、abstract、native修饰,不能有return语句返回值

2.构造器的作用:

  • 创建对象;
  • 给对象进行初始化
    如:Order o = new Order();无参 Person p = new Person(Peter,15);有参

3.分类

隐式无参构造器(系统默认提供)(class)

  • Pubilc A(){}//构造器的命名与类名相同
  • New 一个对象也是用的构造器
  • Public的类默认的构造方法就是public;缺省的类它的构造方法就是缺省的

显式定义一个或多个构造器(无参、有参)

下面的一个例子体会一下“有参”和“无参”的区别。

public class f1 {
	public int age;
	public String name;
	public void setInfo()
	{
		System.out.println(age);
		System.out.println(name);
	}
	//下面提供两种调用方式,第一种无参,第二种有参,选一即可
/**	
 * 自己写一个构造方法,之后就不会用默认的了
 *	构造器的名字必须跟本类名相同,无参的构造方法,不论怎么new对象,初始值是一样的
 */
	public f1()
	{
		age=50;
		name="宝宝";
	}
	public static void main(String[] args)
	{
		f1 p1=new f1();//这实际上是一个调用构造方法的过程。
		p1.setInfo();
	}
/**	
 * 	需求:在new对象的时候能够自己给不同的值
 */

	public f1(int a,String n)
	{
		age=a;
		name=n;
	}
	public static void main(String[] args)
	{
		f1 p1=new f1(20,"三狗哥");//直接将要初始化的值放进去,
		p1.setInfo();
	}
}

4.注 意:

  • Java语言中,每个类都至少有一个构造器,(它可以不用写出来,但是它就是在那,你new一个对象就是在调用构造器
  • 默认构造器的修饰符与所属类的修饰符一致
  • 一旦显式定义了构造器,则系统不再提供默认构造器
  • 一个类可以创建多个重载的构造器
  • 父类的构造器不可被子类继承

二、构造器的重载

既然构造器是方法,那么方法是可以重载的,所以构造器也具有这一特点。
方法见Java5 面向对象编程1(类)第六条

  • 只要构造器的()内不同即可 (构造器重载,参数列表必须不同)名称可以相同
  • 目的是为了应对不同的情况。比如:不输入参数、输入数字、输入字符串……

class Person{
	String name;
	int age;
	public Person(String n , int a){  name=n; age=a;}
}

public class Person{
   public Person(String name, int age, Date d) {this(name,age);}
   public Person(String name, int age) {}
   public Person(String name, Date d) {}
   public Person(){}
}

关键字—this

是什么?

  • 它在方法内部使用,即这个方法所属对象的引用;
  • 它在构造器内部使用,表示该构造器正在初始化的对象。

在哪里使用?

this表示当前对象,可以调用类的属性、方法和构 造器

什么时候使用this关键字?

  1. 当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量时类成员
  2. 在任意方法内,如果使用当前类的成员变量或成员方法可以在其前面添加this,增强程序的阅读性
  3. this可以作为一个类中,构造器相互调用的特殊格式

注意:

  1. 使用this()必须放在构造器的首行!
  2. 使用this调用本类中其他的构造器,保证至少有一个构造器是不用this的。(实际上就是不能出现构造器自己调用自己

三、javaBean

所谓javaBean,是指符合如下标准的Java类:

  • 类是公共的
  • 有一个无参的公共的构造器
  • 私有属性,属性一般是私有的,且有对应的get、set方法

设置Javabean的快捷方法

  1. 设置好成员
  2. 右击空白出,呼唤菜单栏


3. 点击ok

会自动生成JavaBean
如下:

public class Person {
	int age;
	int score;
	String sex;
	String name;
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getScore() {
		return score;
	}
	public void setScore(int score) {
		this.score = score;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}

转载:https://blog.csdn.net/qq_45562910/article/details/104998051
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场