Java中this,static,super及finalkeyword和代码块
this:
- 能够使用this表示类中的属性------this.name=name
- 能够使用this强调调用的是本类的方法
- 能够使用this调用本类的构造方法------this();调用本类中无參构造方法
- 能够使用this表示当前对象(调用方法的对象)----最重要的用途
static:
- 声明属性---------属性则为全局变量
- 声明方法---------Person.setName("Tom");使用类名称调用static方法
final:
- 使用final声明的类不能有子类
- 使用final声明的方法不能被子类覆写
- 使用final声明的变量即成为常量,常量不能够改动(使用final声明变量时,要求所有的字母大写)
spuer:
- 调用父类的构造方法
- 调用父类的普通方法
- 调用父类的属性
注意点:this和super必须放在构造方法内的首行,正式这个原因,this()和super()无法同一时候存在一个构造方法内
普通代码块:直接在方法或是语句中定义的代码块
public class CodeDemo01{
public static void main(String args[]){
{ // 普通代码块
int x = 30 ; // 就属于一个局部变量
System.out.println("普通代码块 --> x = " + x) ;
}
int x = 100 ; // 与局部变量名称同样
System.out.println("代码块之外 --> x = " + x) ;
}
};
构造块:直接写在类中的代码块
class Demo{
{ // 直接在类中编写代码块,称为构造块
System.out.println("1、构造块。") ;
}
public Demo(){ // 定义构造方法
System.out.println("2、构造方法。") ;
}
};
public class CodeDemo02{
public static void main(String args[]){
new Demo() ; // 实例化对象
new Demo() ; // 实例化对象
new Demo() ; // 实例化对象
}
};
执行结果:
1、构造块。
2、构造方法。
1、构造块。
2、构造方法。
1、构造块。
2、构造方法。
静态代码块:使用statickeyword声明的代码块
class Demo{
{ // 直接在类中编写代码块,称为构造块
System.out.println("1、构造块。") ;
}
static{ // 使用static,称为静态代码块
System.out.println("0、静态代码块") ;
}
public Demo(){ // 定义构造方法
System.out.println("2、构造方法。") ;
}
};
public class CodeDemo03{
static{ // 在主方法所在的类中定义静态块
System.out.println("在主方法所在类中定义的代码块") ;
}
public static void main(String args[]){
new Demo() ; // 实例化对象
new Demo() ; // 实例化对象
new Demo() ; // 实例化对象
}
};
执行结果:
在主方法所在类中定义的代码块
0、静态代码块
1、构造块。
2、构造方法。
1、构造块。
2、构造方法。
1、构造块。
2、构造方法。
结论:
- 静态代码块优先于主方法运行
- 类中定义的静态代码块优先于构造块运行(无论多少对象产生,仅仅运行一次)
Java中this,static,super及finalkeyword和代码块的更多相关文章
- Java中 final static super this instanceof 关键字用法
一.final关键字 final可以修饰变量.方法及类: 1.当定义一个final变量时,jvm会将其分配到常量池中,其所修饰的对象只能赋值一次,对基本类型来说是其值不可变,引用类型(包括作为函数形参 ...
- 关于Java中的static关键字
Java中的 static 关键字,确实是一个关键的字(key word),今天就来总结一下它的用法,说说为什么关键. Java中的 static 关键字主要是用来做内存管理的.理解了这句话才能够比较 ...
- java中的static详解
如果一个类成员被声明为static,它就能够在类的任何对象创建之前被访问,而不必引用任何对象.static 成员的最常见的例子是main( ) .因为在程序开始执行时必须调用main() ,所以它被声 ...
- Java中this与super的区别【6】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...
- Java中的static修饰int值做全局变量与static修饰词初始化顺序
先看一道题 public class HasStatic{ private static int x=100; public static void main(String args[]){ HasS ...
- java中 this() 和super()的作用及用法
原文地址:http://www.cnblogs.com/hasse/p/5023392.html 一.This Java关键字this只能用于方法体中.this只能在类中的非静态方法中使用,静态方法和 ...
- java中 this和super的差别
this表示当前调用方法的对象的引用: (谁调用这种方法,谁就是这个对象,这个this就是它的引用) 比方: <pre name="code" class="jav ...
- JAVA中this和super用法
参考网上资料和自行理解总结java中this和super中各自用法及其差异 <一>. this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对 ...
- (转)Java中的static关键字解析
转载: http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: &q ...
随机推荐
- 我常用的Linux命令
CD: .. —-切换到上层目录 ~ —-回到家目录(/home/你的登录名/) LS: -a —-显示指定目录所有文件,包括文件名以 . 开头的文件 -l ...
- 分享我的PL/SQL的优化设置,为开发全面提速
打开[工具]–[首选项]: 1.登陆历史:勾选[存储历史]和[带口令存储],方便下次登陆,免去每次都输入密码的烦恼: 2.编辑器: a.勾选[语法高亮]允许: b.关键词大小写选择大写: c.配置自动 ...
- Cocos2d-android (06) 屏幕触摸事件及坐标转换
为屏幕添加触摸事件,将左上角坐标转换为左下角坐标 package com.arlen.cocos2d.touch01; import org.cocos2d.layers.CCLayer; impor ...
- bzoj 1492 [NOI2007]货币兑换Cash(斜率dp+cdq分治)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1492 [题意] 有AB两种货币,每天可以可以付IPi元,买到A券和B券,且A:B= ...
- 分享一些前端chm文档
分享地址:http://yun.baidu.com/share/link?shareid=39230983&uk=1008683945 对于网络不好的人来说,离线文档更加方便.打开速度更快. ...
- Netmask v. Address Prefix Length
Netmask Address Prefix Length Hosts / Class C's / Class B's / Class A's (Class C) / / , / , / , / , ...
- 在Python中怎么表达True
在Python中怎么表达True 为False的几种情况 0为False,其他所有数值皆为True 空串("")为False,其他所有字符串皆为True 空list([])为F ...
- MyEclipse2015对Javascript自动提示的终极支持
2015通过集成Tern.js,进入了JS自动提示的最新时代 先看看具体效果吧: 点击链接会进入: 而tern.js已经支持相当多的框架: 关键这个提示不只是纯粹的js文件,对于jsp等等 ...
- 流式计算之Storm简介
Storm是一个分布式的.容错的实时计算系统,遵循Eclipse Public License 1.0,Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm之于实时处理,就好比H ...
- github Top100
nodejs 文件 var restify = require('restify'), moment = require('moment'), fs = require('fs'), yesterda ...