`
剑晨java
  • 浏览: 23460 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

关键字之this,super,break\return\continue

阅读更多
   this,最常用的是用来代指对象本身,但什么是本身呢,也许有点令人迷惑,其实只要记住this表示当前对象,而当前对象就是指调用方法或者属性的那个对象。另一种用法是调用当前类的其他构造方法。
    (1)指代当前对象
package TestCode1;

public class People {
	String name;
	public People(String name){
		name=name;
	}
	 
}

这样虽然没有报错,但是实例化对象时会出现name为null的情况。因为这种写法造成一种不清楚的关系,到底是形参中的name赋予给了类中的name,还是类中的name赋予给了形参中的name呢?这时可以在前一个name前用this修饰,此时前一个name表示类中name,就不会出现混淆
package TestCode1;

public class People {
	String name;
	public People(String name){
		this.name=name;
	}
	 
}

    (2)调用当前类的其他构造函数,这也没什么特别的,即多个构造方法时,其中一个要用到其他构造方法时,可以使用this
package TestCode1;

public class People {
	String name;
	public People(){
		System.out.println("执行了无参构造方法");
	}
	public People(int age){
		this();//调用无参构造方法
		System.out.println("执行了int构造方法");
	}
	public People(String name){
		this(1);//调用参数为int型的构造方法
		System.out.println("执行了String构造方法");
	}
}

实例化后结果是:
执行了无参构造方法
执行了int构造方法
执行了String构造方法

      super,出现在子类中,有两种用法,调用父类的构造方法,或者代表父类对象,去调用父类的属相或者方法。
      (1)调用父类的构造方法:在子类的构造函数里第一行,格式
         super(参数,参数....);
package TestCode1;

public class People {
	String name;
	int age;
	public People(String name,int age){
		this.name=name;
		this.age=age;
	}
	public void info(){
		System.out.println("姓名:"+this.name+",年龄:"+this.age);
	}
}
public class Student extends People{
	public Student() {
		super("张三", 21);//这里调用父类的构造方法
	}
	
	public static void main(String args[]){
		new Student().info();
	}
	
}

        (2)代表父类的对象,调用父类方法:格式
             super.父类的属性;
             super.父类的方法;
 package TestCode1;

public class People {
	String name;
	int age;
	public void info(){
		System.out.println("姓名:"+this.name+",年龄:"+this.age);
	}
}
package TestCode1;

public class Student extends People{
	public Student(String name,int age) {
		super.name=name;//调用父类的属性
		super.age=age;//调用父类的属性
	}
	public void printf(){
		super.info();//调用父类的方法
	}
	public static void main(String args[]){
		new Student("张三",21).printf();
	}
	
}

结果和上面一样。

        break\return\continue,用于循环之中的关键字
        (1)break:跳出循环,执行循环后的所有代码,break也称之中断语句,它通常用来在适当的时候退出循环,如break在switch中终止某个case并跳出switch结构
         for(初始值;判断条件;设增减量)
        {
            ............
            break;//若执行break,则此块内其他语句不再被访问,并退出循环
            ............
         }
package TestCode1;

public class Test2{
	public static void main(String args[]){
		int i;
		for(i=1;i<=10;i++){
			if(i==5)
				break;
			System.out.println(i);
		}
	}
}
结果是
1
2
3
4


        (2)return:结束当前方法,经常用,不在赘言
        (3)continue:跳过当层循环,不在执行循环内continue后的语句,而执行下一次循环
            for(初始值;判断条件;设增减量)
        {
            ............
            continue;//若执行continue,则此块内后面语句不再被访问,并执行下一次循环
            ............
         }
package TestCode1;

public class Test2{
	public static void main(String args[]){
		int i;
		for(i=1;i<=10;i++){
			if(i==5)
				continue;
			System.out.println(i);
		}
	}
}
结果是
1
2
3
4
6
7
8
9
10
分享到:
评论

相关推荐

    JAVA中的关键字和保留字

    break - 2 - byte - 2 - case - 3 - catch - 3 - char - 4 - class - 4 - continue - 5 - default - 5 - do - 6 - double - 6 - else - 6 - extends - 6 - false - 7 - final - 7 - finally - 7 - float - 8 - for -...

    java培训机构内部预习文档

    循环控制 while、do while、for、break、continue chp4.函数 函数的三要素、return的用法 chp5.数组 一维数组、数组参数、数组返回值、数组增删、扩容、排序、二维数组 chp6.面向对象 类和对象、实例变量、构造方法...

    javacore:java核心 运算符,控制语句,函数,异常,集合,线程,数组,IO流,网路编程,设计模式,java8,面试相关

    Java基础 java控制流程语句 ...this关键字 static关键字 使用static关键字统计类的创建次数 面向对象 main函数 设计模式-单例 继承 jvm类加载顺序决定代码执行顺序 super关键字 方法重写 instanceof关键字 fi

    java基础核心总结归纳---参考手册--心得手册-学习资料-总结经验

    this 和 super 16 访问控制权限 16 继承 17 多态 17 代理 17 Static 17 Final 17 接⼝和抽象类 18 接⼝ 18 抽象类 18 异常 18 认识 Exception 18 什么是 Throwable 18 常⻅的 Exception 19 与 Exception 有关的 Java...

    hls.min.js

    e.a=a},function(t,e){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(t){return"function"==typeof t}function a(t){return"number"==typeof t}function n...

    99乘法表java源码-biji:课堂笔记

    abstract do implement private this boolean double import protected throw break else instanceof public throws byte extends int return transient case false interface short true catch final long static ...

    ViewPager 放大缩小左右移动

    * This method will be invoked when the current page is scrolled, either * as part of a programmatically initiated smooth scroll or a user * initiated touch scroll. * * @param position ...

    射击游戏 android

    return super.onTouchEvent(event); } //data area private final int kFail = 1; private final int kWin = 2; private final int kPostInvalidate=3; private final int kProduceTarget=4; private ...

    java jdbc 学习 数据

    bstract,break,byte,...native,new,null,package,private,protected,public,return,switch,synchronized,short,static,super,try,true,this,throw,throws,threadsafe,transient,void,while 。

    达内 coreJava 习题答案

    //此处用 continue也可以,只是效率低一点 System.out.print(" "+k+"X"+j+"="+j*k); } System.out.println(); } } } 6、输出所有的水仙花数,把谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身,...

    Ally:发音为LI,Ally是一种具有半可选类型的编程语言

    flt, str, obj, def, fun, var,true, false, null,import, export, as,continue, break, return, throw, keyof, typeof, sizeof, instanceof,try, catch, finally, if, else, for, in, switch, case, default,super,...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    4.6 continue关键字与break关键字 88 4.6.1 continue关键字 88 4.6.2 break关键字 89 4.7 使用switch进行跳转 90 4.8 大例子 94 4.8.1 从控制台读取数据 94 4.8.2 结账程序中的循环 96 4.9 小结:Java不是一...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    4.6 continue关键字与break关键字 88 4.6.1 continue关键字 88 4.6.2 break关键字 89 4.7 使用switch进行跳转 90 4.8 大例子 94 4.8.1 从控制台读取数据 94 4.8.2 结账程序中的循环 96 4.9 小结:Java不是一...

    Android酷炫转动菜单

    return super.dispatchTouchEvent(event); } private float getAngle(float xTouch, float yTouch) { double x = xTouch - (mRadius / 2d); double y = yTouch - (mRadius / 2d); return (float) (Math....

    java面试800题

    Q0040 Java关键字 "51个:abstract, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, extends, final, finally, float, for, goto, if, implements, import, ...

    JAVA基础课程讲义

    break语句和continue语句 47 语句块 48 递归结构 49 本章作业 50 本章上机操作 51 第三章 JAVA面向对象程序开发 52 编程语言发展史 52 类和对象是如何产生发展的?如何进化的? 52 面向对象思想初步(OOP初步Object ...

    〖程序设计基础〗练习题3及答案

    C) 子类必须通过super关键字调用父类的构造函数。 D) 子类无法继承父类的构造函数。 28.下面说法正确的是( )。 A) final 可修饰类、属性、方法。 B) abstract可修饰类、属性、方法。 C) 定义抽象方法需有方法的返回...

    java经典面试2010集锦100题(不看你后悔)

    B) 重载方法的参数必须有不同之处。 C) 重载方法的名字必须相同,否则就不能称为重载了。 D) 重载方法的返回类型相不相同都可以。 题目23:d 程序如下: class A { static int count=0; int number=0; A() { ...

    java基础知识下载

    native,new,null,package,private,protected,public,return,switch,synchronized,short,static,super,try,true,this,throw,throws,threadsafe,transient,void,while 。  java语言中的保留字...

    Java开发技术大全 电子版

    3.6.3this关键字和构造方法的调用132 3.7静态方法133 3.7.1静态方法的声明和定义134 3.7.2静态方法和实例方法的区别134 3.7.3静态代码块136 3.7.4再论静态成员变量137 3.8main()方法和命令行参数139 3.9结束...

Global site tag (gtag.js) - Google Analytics