Java小白入门200例69之构造方法详解

Posted 编程界明世隐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java小白入门200例69之构造方法详解相关的知识,希望对你有一定的参考价值。

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

引言

很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢?
其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大佬的路上一去不复返(切记要亲手练习哦)!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  68.创建一个学生类
►下一篇  70.this关键字详解

构造方法和方法的区别:

构造方法要与类名相同,无返回类型,在类初始化的时候调用。
方法最好与类名不同,对象调用,静态方法可用类名.方法().
构造器和方法在下面三个方面区别:修饰符,返回值,命名。

  1. 和方法一样,构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用). 不同于方法的是,构造器不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。
  2. 返回类型也是非常重要的。方法能返回任何类型的值或者无返回值(void),构造器没有返回值,也不需要void。
  3. 两者的命名。构造器使用和类相同的名字,而方法则不同。按照习惯,方法通常用小写字母开始,而构造器通常用大写字母开始。构造器通常是一个名词,因为它和类名相同;而方法通常更接近动词,因为它说明一个操作。

案例1

创建一个默认的构造方法

package demo.demo69;

import demo.demo69.Student;

/*
 * 学生类
 */
public class Student {

	private String name;// 名字
	private int age;// 年龄
	private char sex;// 性别

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public char getSex() {
		return sex;
	}

	public void setSex(char sex) {
		this.sex = sex;
	}
}

有小伙伴肯定会问了,你构造函数不是说要与类名一样吗,我代码没有看到你所说的构造方法呢。
其实创建类以后,默认有一个无参构造器,我们写个main方法调用一下,就知道了。

//main方法
public static void main(String[] args) {
	Student student1  = new Student();
	student1.setName("张三");
	student1.setAge(20);
	student1.setSex('男');
	
	System.out.println("姓名:" + student1.getName() + "\\n性别:" + student1.getSex() + "\\n年龄:" + student1.getAge());
}

可以看到在实例化Student的时候,直接用new Student() 来创建了,这个就是默认的构造器,只要建了类就会默认自带的,当然我们可以自己定义。

案例2

修改默认的构造器,自己编写。
在Student类中加入以下代码

public Student() {
	System.out.println("调用自己定义的无参构造器");
}

运行一下这个类:

调用自己定义的无参构造器
姓名:张三
性别:男
年龄:20

当然可以有多个构造器的存在,需要哪个就调用哪个,但是因为名字都是和类名一样的,所以构造器是通过参数来区分的。

案例3

加入有参数的构造器

public Student(String name,int age,char sex) {
		System.out.println("调用自己定义的有参构造器");
		
		this.name=name;
		this.age=age;
		this.sex=sex;
	}

修改一下main方法

//main方法
public static void main(String[] args) {
	/*Student student1  = new Student();
	student1.setName("张三");
	student1.setAge(20);
	student1.setSex('男');*/
	
	Student student1  = new Student("王小妹",18,'女');
	
	System.out.println("姓名:" + student1.getName() + "\\n性别:" + student1.getSex() + "\\n年龄:" + student1.getAge());
}

运行结果:

调用自己定义的有参构造器
姓名:王小妹
性别:女
年龄:18

案例4

多个构造可以共存,并且分别调用的,看自己的需要

package demo.demo69;

import demo.demo69.Student;

/*
 * 学生类
 */
public class Student {

	public Student() {
		System.out.println("调用自己定义的无参构造器");
	}
	
	public Student(String name,int age,char sex) {
		System.out.println("调用自己定义的有参构造器");
		
		this.name=name;
		this.age=age;
		this.sex=sex;
	}
	
	private String name;// 名字
	private int age;// 年龄
	private char sex;// 性别

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public char getSex() {
		return sex;
	}

	public void setSex(char sex) {
		this.sex = sex;
	}

//main方法
public static void main(String[] args) {
	Student student1  = new Student();
	student1.setName("张三");
	student1.setAge(20);
	student1.setSex('男');
	System.out.println("姓名:" + student1.getName() + "\\n性别:" + student1.getSex() + "\\n年龄:" + student1.getAge());
	
	Student student2  = new Student("王小妹",18,'女');
	
	System.out.println("姓名:" + student2.getName() + "\\n性别:" + student2.getSex() + "\\n年龄:" + student2.getAge());
}
}

运行结果:

调用自己定义的无参构造器
姓名:张三
性别:男
年龄:20
调用自己定义的有参构造器
姓名:王小妹
性别:女
年龄:18

小结

这节总结了“构造方法详解”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  68.创建一个学生类
►下一篇  70.this关键字详解

热门专栏推荐

1.Java小游戏系列(俄罗斯方块、飞机大战、植物大战僵尸等)
2.JavaWeb项目实战(图书管理、在线考试、宿舍管理系统等)
3.JavaScript精彩实例(飞机大战、扫雷、贪吃蛇、验证码等)
4.Java小白入门200例
5.从零学Java、趣学Java、以王者荣耀角度学Java

以上是关于Java小白入门200例69之构造方法详解的主要内容,如果未能解决你的问题,请参考以下文章

Java小白入门200例111之Collections类操作集合详解

Java小白入门200例45之 for 语句详解

Java小白入门200例48之 continue语句详解

Java小白入门200例47之 break语句详解

Java小白入门200例58之日期Calendar类详解

Java小白入门200例57之日期Date类详解