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环境 ...
随机推荐
- sqlDependency监控数据库数据变化,自动通知
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- SQL 表结构操作
数据库知识总结(表结构操作) 1.创建表Scores 1 create table Scores --表名 2 (Id int identity(1,1) primary key,--设置主键,并且行 ...
- JS代码中!!的用法,以及代码性能对比
一.!!的理解 解释: !!的意思就是把一个任意类型的值转换为布尔类型的值,一个!是取非 再一个!又取非,相当于把这个数据转换为boolen类型了. 使用场景: 常常用在if(a).if(!!a)这样 ...
- win10 UWP 显示地图
微软自带的地图很简单 引用地图xmlns:Map="using:Windows.UI.Xaml.Controls.Maps" 写在<Page> 然后在Grid 用Map ...
- ajax 轮询 和 php长连接
只看加粗的字体 js 部分 1: ajax 成功回调函数中 一定要用时间函数间隔调用 get_comment(). get_comments('init'); function ...
- cas单点登录如何获取更多信息
现在有个新的系统(SpringMVC+Spring+Mybatis),我为它添加了一个单点登录功能.只是在本地客户端的web.xml文件里,添加了以下配置 <!-- 用于单点退出,该过滤器用于实 ...
- xmanager 打开centos7图形化窗口
centos7 最小化安装后,个别时候需要执行一些带图形界面的命令.比如安装oracle,打开xclock等. 前置条件:centos7系统 ,xmanager 已安装 用xclock做测试 1.因为 ...
- Invalid environment specified: http://datatables.org/alltables.env
获取Yahoo股票的API会报错:http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes ...
- 机器学习之二:K-近邻(KNN)算法
一.概述 K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中 ...
- TIDB 参数解释
地址:https://github.com/pingcap/docs-cn/blob/master/op-guide/configuration.md#tidb TiDB --store 用来指定 T ...