摘要:在Java中我们会时常用到super及this的用法,现在我主要来区分一下super.和this.及superL()及this()之间的区别,来对它们的认识和了解:

  1.this的用法在Java中:

①:this.:this加点指此时代表当前对象,能操作当前类里面的所有属性及方法以及父类继承而来能被访问修饰符允许的属性和方法。

  super.:此时指代当前对象类的父类对象部分,不能操作到本类的属性和方法,能操作到父类的能被父类访问修饰符允许的属性和方法,只有当本类中调用被重写前的效果时使用super.的方法。

  语法:this.成员名  或者  this. 方法名

  例:这是this加点使用

public class DemoThis {
private String name;
private int age;
public DemoThis() {
this.print();// 你可以加上this来调用方法,
}
public DemoThis(String name, int age) {
this.name = name;
this.age = age;//这里就必须使用this加点的方法来区分,this.name就指代当前的属性name;
}
public void setName(String name) {
this.name = name; // 此处必须指明你要引用成员变量
} public void setAge(int age) {
this.age = age;
} public void print() {
System.out.println("Name=" + name + " Age=" + age); // 在此行中并不需要用this,
// 因为没有会导致混淆的东西
}
}

  例:super加点的使用,

package com.lov.lianxiText;

public class DemoThis {//父类
private String name;
private int age;
public DemoThis() {
}
public void print() {
System.out.println("哈哈哈哈。。。。。");
}
}

  

package com.lov.lianxiText;

public class Demo extends DemoThis {//子类
public Demo(){ }
public void print(){
super.print();//只有这个时候用super.方法,其他我们基本用this.方法
System.out.println("嘿嘿嘿.......");
}
}

 总结:有上面我们可知道,this.的使用范围要比super.的范围更大,除了上面要看重写前的效果能super,我们都是用this.的方法。

2:this()与super()

①this()和super()都是使用只能使用于构造方法中,

②this()调用本类的构造,如果括号内有形参,则是调用本类的与之相对应参的构造方法;super()调用父类指定的构造方法,

③都只能写在构造方法的第一句;

④super()可以不写,在不写的时候会默认调用父类的无参构造,

⑤this()与super()不能共存,两者只能使用一个。

在Java中super和this的区别的更多相关文章

  1. java中super()和this()、super和this的区别

    1.super()和this()区别: super():调用父类无形参的构造方法: super(形参):调用父类中某个带形参的构造方法: this(形参):调用本类中另一种形式的构造方法: 注意:放在 ...

  2. Java中Set Map List 的区别

    java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list   --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...

  3. Java中Comparable和Comparator接口区别分析

    Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comp ...

  4. 转:Java中abstract和interface的区别

    转自:Java中abstract和interface的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java ...

  5. Java中堆和栈的区别(转)

    栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆.      Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new. ...

  6. 转:二十一、详细解析Java中抽象类和接口的区别

    转:二十一.详细解析Java中抽象类和接口的区别 http://blog.csdn.net/liujun13579/article/details/7737670 在Java语言中, abstract ...

  7. Java中Long与long的区别(转)

    Java中Long与long的区别(转) [本文转载自:http://www.cnblogs.com/bluestorm/archive/2012/04/22/2464739.html] 转载请联系原 ...

  8. java中堆和堆栈的区别

    java中堆和堆栈的区别(一) 1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2. 栈的优势是,存取 ...

  9. Java中ArrayList与LinkedList的区别

    Java中ArrayList与LinkedList的区别 一般大家都知道ArrayList和LinkedList的区别: 1. ArrayList的实现是基于数组,LinkedList的实现是基于双向 ...

随机推荐

  1. BZOJ2151: 种树

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2151 题解:此题=数据备份.喜闻乐见挂链表. 代码: #include<cstdio&g ...

  2. cocos2d-x中的Jni使用(C++与Andriod方法互调)

    作者:何卫 转载请注明,原文链接:http://www.cnblogs.com/hewei2012/p/3376616.html 前提条件: 1.操作的游戏工程和cocos2d_x游戏引擎是一个目录的 ...

  3. 【Java学习笔记】数组使用

    package aaa; public class aaa { public static void main(String args[]) { int a[]={1,2,3,4}; for(int ...

  4. liunx安装qq

    http://www.07net01.com/电脑玩物 http://www.07net01.com/2014/09/68186.html 安装qq 一开始,我在ubuntu14.04下安装的QQ版本 ...

  5. 四、oracle基本sql语句和函数详解

    一.oracle常用数据类型 一.  数据定义语言(ddl) 数据定义语言ddl(data definition language)用于改变数据库结构,包括创建.更改和删除数据库对象. 用于操纵表结构 ...

  6. TCP/IP详解学习笔记(1)-基本概念

    为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样 ...

  7. 安装--SambaServce

    参考地址:快跑蚂蚁的linux之旅--redhat安装配置samba实验win共享linux主机目录 1.使用rpm -qa|grep "samba",查看samba安装包是否安装 ...

  8. Linux应用层直接操作GPIO

    Linux应用层直接操作GPIO 在一个老手的指导下,应用层可以直接操作GPIO,具体指设置GPIO的输入输出以及输出电平高或者低.这个大大地提高了灵活性,官方的文档有GPIO Sysfs Inter ...

  9. 关于KOBE 退役

    今天在网上看到一行话,写在KOBE 退役之际 关于职业,最值得问的是自己我有没有像科比那样始终表现出对团队的忠诚和对职业的热爱?从不被别人的误解和攻击打倒?在团队最困难的时候站出来做能做的一切?用职业 ...

  10. IOS 多级列表展开控件

    项目中实现了一个可以多级展开的列表控件.每次展开都是互斥的,就是说,展开一个cell 就会关闭其他展开的层. 可以呈现的效果如下图.第一个图片是应用中实现的效果.第二个是Demo中的效果.如果有新的需 ...