(简单说:静态方法和对象没有关系,不能使用对象的成员和方法),而对象可以访问静态的成员(最好用类名
访问,用对象访问有点不规范) 因为静态成员是共享的,可以被所有的地方访问,而实例成员不是共享的,只能对象访问
实例方法可以直接访问实例成员:可以理解实例方法都是属于对象的,实例成员也是属于对象的,属于实例方法可以直接访问实例成员
静态方法中不可以出现this关键字:因为this关键字表示当前对象的地址,静态方法不能出现和对象相关的,属于类 (实例方法中可以出现this,因为实例方法和成员都属于对象)
package com.itheima.d1_static;public class Test3 {/*** 静态成员*/public static int onlineNumber = 10;public static void test2(){System.out.println("========test2==========");}/*** 实例成员*/private String name; // 静态方法不能直接访问实例成员public void run(){ // 这是一个实例方法,对象访问,System.out.println(name + "跑得快");}// 1.静态方法只能访问静态成员,不能“直接”访问实例成员。 可以new一个对象访问实例成员public static void test(){System.out.println(Test3.onlineNumber);System.out.println(onlineNumber); // 静态成员在本类中直接访问test2(); // test2()是静态方法,静态方法中可以调用静态方法 (简单说:静态方法和对象没有关系,不能使用对象的成员和方法)// System.out.println(name); 报错,静态方法不能访问实例成员}// 2.实例方法可以访问静态成员,也可以访问实例成员public void go(){System.out.println(Test3.onlineNumber);System.out.println(onlineNumber); // 实例方法访问静态成员// 实例方法可以直接访问实例成员:可以理解实例方法都是属于对象的,实例成员也是属于对象的,属于实例方法可以直接访问实例成员test2(); // 实例方法访问静态方法test(); // 实例方法访问静态方法run(); // 实例方法访问 实例方法 同一个对象,都可以访问// 实例方法中可以出现this,属于对象System.out.println(this); // 打印当前对象的地址 com.itheima.d1_static.Test3@41629346}// 3.静态方法中不可以出现this关键字public static void test3(){// System.out.println(this); // 因为this关键字表示当前对象的地址,静态方法不能出现和对象相关的,属于类}public static void main(String[] args) {// 目标: 理解static 访问相关的语法:面试笔试题,或者以后理解程序很重要的知识(扩展).Test3 t = new Test3();t.go();}}
