JAVA构造函数简析
构造函数是java新建对象的一种手段
构造函数可以重载
如果一个类中有多个域,那么就可能需要多个构造函数。这时候,使用重载就可以了
构造函数中this和super的使用
this:(1)this用于本类的构造方法中,首先可以表示调用方法的对象.此时一般是为了去除歧义,也就是构造方法的参数和类中的域名字一致。这个时候就会采取就近原则
,因此。就必须使用this来显示的指定。
例如: class People{
int age;
String name;
People(){};
People(int age, String name){
this.age = age;
this.name = name
}
}
(2)当一个类中有太多的构造方法时,为了复用代码,可以在一个构造方法中可以使用this()来表示调用该类的其他构造方法。
例如:
class People{
String name;
String address;
int age;
public People() {
}
People(String name){
this.name = name;
}
People(String name, String address){
this.name = name;
this.address = address;
}
People(String name, String address, int age){
this.name = name;
this.address = address;
this.age = age;
}
就可以改写成
class People{
String name;
String address;
int age;
public People() {
}
People(String name){
this(name , null, 0);
}
People(String name, String address){
this(name, address, 0);
}
People(String name, String address, int age){
this.name = name;
this.address = address;
this.age = age;
}
Super在构造方法的使用:子类在构建对象的时候,要先进行父类的创建。此时,如果父类有默认无参的构造方法,那么子类构造方法中可以不显示的调用super(),如果父类中没有默认无参的构造方法,那么子类的构造方法中就必须显示的调用父类的有参构造方法。而且必须放在子类构造方法的最前面
例如:class People{
int age;
People(int age){
this.age = age;
}
}
class Student extends People{
Student(int age){
super(age);
this.age = age
}
}
public class Test{
public static void main(String a;rgs[]){
Student s = new Student();
}
}
JAVA构造函数简析的更多相关文章
- Java多线程简析
一.线程的状态: 线程共有下面4种状态: 1.新建状态(New): 新创建了一个线程对象,当你用new创建一个线程时,该线程尚未运行. 2.就绪状态(Runnable): 线程对象创建后,其他线程调用 ...
- java包装类简析
对于8个基本类型,java提供了他们相应的包装类: 基本类型 包装类 byte java.lang.Byte short java.lang.Short int java.lang.Integer l ...
- Java多线程简析——Synchronized(同步锁)、Lock以及线程池
Java多线程 Java中,可运行的程序都是有一个或多个进程组成.进程则是由多个线程组成的.最简单的一个进程,会包括mian线程以及GC线程. 线程的状态 线程状态由以下一张网上图片来说明: 在图中, ...
- Java Annotation 及几个常用开源项目注解原理简析
PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示 ...
- JDK框架简析--java.lang包中的基础类库、基础数据类型
题记 JDK.Java Development Kit. 我们必须先认识到,JDK不过,不过一套Java基础类库而已,是Sun公司开发的基础类库,仅此而已,JDK本身和我们自行书写总结的类库,从技术含 ...
- Java Android 注解(Annotation) 及几个常用开源项目注解原理简析
不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义. ...
- [转载] Thrift原理简析(JAVA)
转载自http://shift-alt-ctrl.iteye.com/blog/1987416 Apache Thrift是一个跨语言的服务框架,本质上为RPC,同时具有序列化.发序列化机制:当我们开 ...
- JAVA JVM常见内存参数配置简析
JVM常见内存参数配置简析 常见参数 -Xms .-Xmx.-XX:newSize.-XX:MaxnewSize.-Xmn(-XX:newSize.-XX:MaxnewSize) 简析 1.-Xm ...
- Eclipse Debug模式的开启与关闭问题简析_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 默认情况下,eclipse中右键debug,当运行到设置的断点时会自动跳到debug模式下.但由于我的eclipse环境 ...
随机推荐
- Cookie同域,跨域单点登录
Cookie 同域单点登录 最近在做一个单点登录的系统整合项目,之前我们使用控件实现单点登录(以后可以介绍一下).但现在为了满足客户需求,在不使用控件情况下实现单点登录,先来介绍一下单点登录. 单点登 ...
- MySQL(十三)之MySQL事务
前言 这段时间自己会把之前学的东西都总结一遍,希望对自己以后的工作中有帮助.其实现在每天的状态都是很累的,但是我要坚持! 进入我们今天的正题: 为什么MySQL要 有事务呢?事务到底是用来干什么的?我 ...
- GooglePlay - 文件上传限制的扩展
前言 Google Play应用商店在上传限制100MB大小,超过该大小的应用必须将超过部分以扩展文件的形式进行上传处理. 总共可上传2个扩展文件,每个最大文件可为2GB,同时obb文件格式可自选. ...
- ArcGis for flex查询FeatureLayer数据
1. 首先实例化一个FeatureLayer对象 private var featureLayer:FeatureLayer=new FeatureLayer(); 2.指定FeatureLayer对 ...
- win10 UWP button
button有很多和wpf一样,可以看<深入浅出WPF> 我们可以在button的click写上 <Button Content="确定" Click=" ...
- win10 uwp iot
这篇文章主要译: https://msdn.microsoft.com/magazine/mt694090 有很多都是胡说,随便喷,但我不会理. https://blogs.msdn.microsof ...
- 填个小坑,Vue不支持IE8及以下,跨域ajax不支持IE9
这特么就尴尬了,说好的Vue支持IE8及以下的呢,引入jquery,测试IE个浏览器,IE9仍然显示不正常, 然而命令行测试Vue仍然存在, 数据回不来!数据回不来!数据回不来! 好吧 肉包子打狗$ ...
- [译]ASP.NET Core 2.0 中间件
问题 如何创建一个最简单的ASP.NET Core中间件? 答案 使用VS创建一个ASP.NET Core 2.0的空项目,注意Startup.cs中的Configure()方法: public vo ...
- UISearchBar的扩展使用
1. 设置背景颜色 let searchBar = UISearchBar.init() searchBar.barTintColor = UIColor.white 2. 去除上下黑线 let bg ...
- 写一个类时什么时候需要重写toString
一般需要打印出来的时候需要重写toString方法 例如:User.java类 public class User { private String name; @Value(value=" ...