package com.bjpowernode.javase.Test02;
/**
* 最终结论:
* 在带有static的方法当中,不能“直接”访问实例变量和实例方法
* 因为实例变量和实例方法都需要对象的存在
* 而static的方法当中是没有this的,也就是说当前对象是不存在的
* 自然也是无法访问当前对象的实例变量和实例方法
* @author happy
*
*/
public class ThisTest {
//主方法
public static void main(String[] args) {
//调用dosome
doSome();
//调用dosome
ThisTest.doSome();
//调用doOther对象
//ThisTest.doOther
//【编译错误】 实例方法必须先创建对象,通过引用.的方式访问。
/*
* doOther是实例方法
* 实例方法调用必须有对象的存在
* 以下代码的含义:调用当前对象的doOther方法
* 但由于main方法中没有this,所以以下方法不能调用
* doOther(); 编译错误
* this.doOther(); 编译错误
*/
ThisTest tt = new ThisTest();
tt.doOther();
}
//带有static
public static void doSome(){
System.out.println("do Some!");
}
//不带有static 实例方法
public void doOther(){
//含有this
System.out.println("do Other!");
}
//run是实例方法,调用run方法的一定是有对象存在的
//一定是先创建了一个对象,才能调用run方法
public void run(){
//在大括号中的代码执行过程中一定是存在“当前对象的”
//也就是说这里一定有“this”的存在
System.out.println("run Execute!");
//doOther 是一个实例方法,实例方法调用必须有对象的存在
//以下代码表示的含义就是:调用当前对象的doOther方法
doOther(); //this. 大部分情况下都是可以省略的
this.doOther(); //比较完整的写法
}
}