this、代码块、内部类
来源:互联网 发布:seo外链推广 编辑:程序博客网 时间:2024/06/05 20:43
this关键字
this在java中表示出以下的概念:
·调用类中的属性:this.属性
·调用类中的方法:this.方法
·调用类中的构造方法:this()
·表示当前对象:this
父类没有默认构造函数的话,子类必须显示地用super方法调用父类带有参数的构造函数,
如果父类有默认的构造函数,则子类在编译是自动加上了super()
private 属性不能被外部直接访问,只能在内部可见,利用这样的特点,我们设计出了单例模式
public class Single {
private static Single instance=new Single();
private Single(){
}
public static Single getSingle(){
return instance;
}
public void print(){
System.out.println("s***************");
}
public static void main(String[] args) {
Single.getSingle().print();
}
}
注意:static的属性,内存只有一份,被所有的对象恭享一个属性。
Static属性的全局属性,可以由类名称直接访问,static方法不能调用非static属性与方法。
代码块:
在Java中使用“{}”括起来的代码称为代码块,根据代码块的定义位置不同,分为四种:
·普通代码块:{}位于方法内
·构造块:{}位于类中 (构造块优先于构造方法执行,每次new的时候都会执行)
·静态块:使用static关键字声明的代码块,主要的是用来为静态属性初始化。(静态块优先于住方法执行,优先于构造块执行,只执行一次)
·同步块:sychronized声明加上{}的块。
public class CodeDemo01 {
{
System.out.println("********构造态块********");
}
public CodeDemo01(){
System.out.println("*******构造方法********");
}
static{
System.out.println("***********静态块**********");
}
public static void main(String[] args) {
new CodeDemo01();
new CodeDemo01();
{
System.out.println("*******这是普通代码快*******");
}
}
}
/***********静态块**********
********构造态块********
*******构造方法********
********构造态块********
*******构造方法********
*******这是普通代码快*******/
内部类:内部类的唯一优点:可以方便访问外部类的私有属性;
public class Outer {
private String name="jtlyuan";
class Inner{
public void print(){
System.out.println("name="+name);//访问了Outer的私有属性name
}
}
public static void main(String[] args){
Outer o = new Outer();
Outer.Inner i = o.new Inner();//定义内部类的格式
i.print();
}
}
如果内部类使用了static关键字,则表示外部类,可以通过Outer.Inner in =new Outer.Inner();定义,内部类可以放在类中,也可以放在方法中。但是内部类定义在方法中,方法中的形参要用final修饰。
- this、代码块、内部类
- 代码块、内部类
- 内部类和代码块
- Java内部类 及其静态代码块
- java_notes_static、final、内部类、代码块
- JAVA_内部类和代码块
- 内部类与this
- 内部类的this
- 黑马程序员——代码块和内部类
- 匿名内部类 初始化块
- 内部类 .this 和 .new
- 内部类代码实例
- 包含内部类的代码块和构造方法的执行顺序
- java类中不同代码块的执行顺序(不包含内部类)
- Java基础进阶_day04_(static,代码块,final,包与权限修饰符,内部类)
- JAVA静态变量、静态方法、静态代码块和静态内部类
- Java内部类的this问题
- 匿名内部类 this.val$的问题
- 当javaScript从入门到提高前需要注意的细节:变量部分
- Android高级编程---自定义控件(实现RadioButton单选)
- 偏移量和长度超出数组的界限,或者计数大于从索引到源集合结尾处
- 嘿嘿
- redo 和 undo 之三
- this、代码块、内部类
- vs2008+opencv2.3配置
- Android消息处理学习笔记
- apache通过httpd.conf绑定多个域名及二级域名
- 详解android:scaleType属性
- CppUint试用总结
- Linux下程序的调式(gdb)(1)
- flex实现自定义鼠标
- jQeury层布局插件