Java 构造器或构造方法
构造方法的定义
构造方法也叫构造器或者构造函数
构造方法与类名相同,没有返回值,连void都不能写
构造方法可以重载(重载:方法名称相同,参数列表不同)
如果一个类中没有构造方法,那么编译器会为类加上一个默认的构造方法。
默认构造方法格式如下:
public 类名() {
}
如果手动添加了构造器,那么默认构造器就会消失。
建议代码中将无参构造器写出来。
public class Student { public String name;
public int age; public void eat() {
System.out.println("eat....");
} //构造器
/**
* 名称与类名相同,没有返回值,不能写void
* 构造器可以重载
* 如果类中没有手动添加构造器,编译器会默认再添加一个无参构造器
* 如果手动添加了构造器(无论什么形式),默认构造器就会消失
*/
public Student() {
System.out.println("无参构造器");
} public Student(int a) {
System.out.println("一个参数的构造器");
age = 15;
} public Student(int a, String s) {
System.out.println("两个参数的构造器");
age = a;
name = s;
}
}
构造方法的作用
构造方法在创建对象时调用,具体调用哪一个由参数决定。
构造方法的作用是为正在创建的对象的成员变量赋初值。
public class Test { public static void main(String[] args) { //调用无参构造器
Student s1 = new Student();
//调用有参构造器
Student s2 = new Student(15);
System.out.println(s2.age);
Student s3 = new Student(34, "小明");
System.out.println(s3.name + ":" + s3.age);
} }
构造方法种this的使用
构造方法种可以使用this,表示刚刚创建的对象
构造方法种this可用于
this访问对象属性
this访问实例方法
this在构造方法中调用重载的其他构造方法(要避免陷入死循环)
只能位于第一行
不会触发新对象的创建
public class Student { public String name;
public int age; public void eat() {
System.out.println("eat....");
}
//构造器
//使用this()调用重载构造器不能同时相互调用,避免陷入死循环
public Student() {
//this()必须出现在构造器的第一行,不会创建新的对象
this(15);//调用了具有int类型参数的构造器
System.out.println("默认构造器");
}
public Student(int a) {
this.eat();
eat();//this.可以省略
}
//this在构造器中表示刚刚创建的对象
public Student(int a, String s) {
System.out.println("两个参数的构造器");
this.age = a;
this.name = s;
}
}
public class Test { public static void main(String[] args) {
Student s1 = new Student(15, "小明");
System.out.println(s1.name + ":" + s1.age);
Student s2 = new Student(12, "小红");
System.out.println(s2.name + ":" + s2.age); Student s3 = new Student();
}
}
归纳this在实例方法和构造方法种的作用
this是java多态的体现之一
this只可以在构造方法和实例方法种存在,不能出现在static修饰的方法或代码块中
this在构造方法中表示刚刚创建的对象
this在实例方法种表示调用改方法的对象
this可以在实例方法和构造方法中访问对象属性和实例方法
this有时可以省略
this可以在实例方法中作为返回值
this可以当作实参
this可调用重载的构造方法
Java 构造器或构造方法的更多相关文章
- Java构造器(构造方法/constructor)
我们先来看一下什么是构造器: 1.构造器也叫构造方法或构造函数,分为有参构造器和无参构造器: 2.构造器也是一种方法,只不过是一种特殊的方法,它会在对象创建的时候被调用: 3.构造器最大的作用就是在创 ...
- 乐字节Java构造器(构造方法|构造函数)、方法与内存分析
一. 构造器(构造方法|构造函数) 在创建对象时(new),必会调用一个特殊的方法,这个方法是初始化对象信息的为new服务的.这个方法称为“构造器” 使用 new + 构造方法创建一个新的对象. 构造 ...
- Java -> 构造器(构造方法)
构造方法 我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的set和get方法.当 ...
- java 构造器(构造方法)使用详细说明
知识点 什么是构造器 构造器通常也叫构造方法.构造函数,构造器在每个项目中几乎无处不在.当你new一个对象时,就会调用构造器.构造器格式如下: [修饰符,比如public] 类名 (参数列表,可以没有 ...
- Java构造器(构造方法)
类中的构造器也成为构造方法,是在进行创建对象的时候必须调用的,并且构造器有以下两个特点: 1.必须和类名字相同 2.必须没有返回类型也不能写void public class Demo06 { //一 ...
- Java学习day11-类的成员之三:构造器(构造方法)
一.构造器(构造方法) 语法格式: 修饰符 类名(参数列表){ 初始化语句: } 构造器的特征: 1.它具有与类相同的名称 2.它不声明返回值类型.(与声明为void不同) 3.不能被static.f ...
- 《Java基础——构造器(构造方法)》
Java基础--构造器(构造方法) 总结: 1.构造器名应与类名相同,且无返回值. 2."new 方法"的本质就是在调用构造器. 3.构造器的作用--初始化对象的值. ...
- Java 构造器Constructor 继承
Java默认构造方法 构造方法作用:初始化所定义的类的对象和属性. 构造方法没有返回类型. 2 继承中的构造器 子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式). 如果父类 ...
- java基础知识 构造方法
在java里面,构造方法也就是构造函数 构造函数=构造方法;构造方法是一种特殊的方法,具有以下特点.(1)构造方法的方法名必须与类名相同.(2)构造方法没有返回类型,也不能定义为void,在方法名前面 ...
随机推荐
- Scala的两种变量
Scala有两种变量,val和var.val类似于Java的final变量,一旦初始化了,就不能再赋值了.var如同Java中的非final变量,可以在生命周期内被多次赋值.
- mysql简单的增删改查
增加 MYSQL>insert into class (stu,name,age) values (1,'zhangsan',23);(回车) 另外,如果输入的是中文的话,在windows下可能 ...
- Android开发-Android Studio安装
开发平台:Windows 7 旗舰版,SP1 开发工具:Android Studio1.2正式版 1.打开http://www.androiddevtools.cn/ ,找到Android Studi ...
- JSP报错01
ZC: 创建一个JSP之后,就报如下错误. 1.错误: 1.1. 2.处理: Exlipse for JEE --> Project Explorer 中选择项目 --> 右击项目名 -- ...
- elsevier 与 springer 投稿区别
http://emuch.net/bbs/viewthread.php?tid=5369913
- activity启动模式之singleTop
activity启动模式之singleTop 一.简介 二.设置方法 在AndroidManifest.xml中将要设置为singleTop启动模式的页面进行配置 <activity andro ...
- js:s上次预览,上传图片预览,图片上传预览
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- delete 与 delete []的区别
一. 针对类class,这两种方式的效果是不同的. 当你通过下列方式分配一个类对象数组: class A { private: char *m_cBuffer; int ...
- 广义线性模型(GLM)
一.广义线性模型概念 在讨论广义线性模型之前,先回顾一下基本线性模型,也就是线性回归. 在线性回归模型中的假设中,有两点需要提出: (1)假设因变量服从高斯分布:$Y={{\theta }^{T}}x ...
- LeetCode OJ:Two Sum(两数之和)
Given an array of integers, find two numbers such that they add up to a specific target number. The ...