static调用/访问的相关内容(wps备份)

实例

package java0806;
public class staticDemo {
    int a =1;			
    static int static_b =2; 	//静态变量

    //演示“普通方法可以访问 静态和非静态的变量和方法”
    public int fun1() {
        int c =3;				//局部变量c
        System.out.println("调用了普通方法 a+b="+(a+static_b));
        static_fun2();			//普通方法访问静态方法
        return a+static_b;  	//普通方法可以访问/调用静态b和非静态的变量a
    }

    //演示"静态方法不能访问非静态变量"
    public static int static_fun2() {	//静态方法
        System.out.println("调用了静态方法="+static_b);

        return static_b; 		//静态方法可以访问静态变量b
        //add();				//语法错误,静态方法不能访问实例方法
        //return a-b;			//语法错误,静态方法不能访问/调用非静态变量a。
        /*Cannot make a static reference to the non-static field a
         *change 'a'to static
         */
    }

    public static void main(String[] args) {
        staticDemo duixiang = new staticDemo();
        
        System.out.println("----类能直接访问的只有静态成员----");
    //	System.out.println(staticDemo.a);	//报错,类不能直接访问属性,需要类的对象去访问
    //  staticDemo.add();					//报错,类不能直接访问方法,需要类的对象去访问
        System.out.println("类直接访问静态变量 ="+staticDemo.static_b);	
        staticDemo.static_fun2();			//类直接访问静态方法

        System.out.println("\n"+"----用对象去访问静态/非静态的属性和方法----");
        System.out.println("对象直接访问并修改 非静态变量  ="+(duixiang.a=10));
        System.out.println("对象直接访问并修改 静态变量 ="+(duixiang.static_b=20));//有黄色提示,如下截图
        duixiang.fun1();					//对象直接访问非静态方法
        duixiang.static_fun2();				//对象直接访问静态方法 	 //有黄色提示,如下截图
    }
}

在这里插入图片描述
调用关系:
(这里普通方法可以访问静态方法,没有画线。类似于普通方法访问静态变量)
(这里静态方法不能访问普通方法,没有画线。类似于静态方法不能访问成员变量)在这里插入图片描述

一、名词概念

  1. 类 class
  2. 类的实例 = 对象object= 实例instance
  3. 方法method:一般面向对象 (又叫函数function:一般面向过程)
  4. 变量(JAVA中)= field = 属性

3种变量类型:
局部变量,方法体中定义的
成员变量(实例变量,非静态变量),在类中& 方法体之外& 无static
类变量=static变量=静态变量,类中& 方法体之外 &有static。
该类所有对象共有(一处修改,原始值改变)

2种方法类型:
普通方法(实例方法)= 无static修饰的方法
静态方法=static修饰的方法

访问=调用

二、static 修饰符

static 定义属性:

什么是静态变量:
1、static 关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。
2、静态变量也被称为类变量。
3、局部变量不能被声明为 static 变量。
作用:
在创建类的多个对象时,用static修饰的常量在内存中只有一份拷贝。
不用static修饰则可能有多份拷贝。
注:
任何一个对象修改了静态属性X( 对象.X ),其他对象在使用X时,X也被改变。
体现了:静态属性是所有对象共有。 (也可通过 类.X 来修改类属性的值)

static 定义方法:

什么是静态方法:
1、static 关键字用来声明独立于对象的静态方法。
2、静态方法不能使用类的非静态变量。
3、静态方法从参数列表得到数据,然后计算这些数据。
作用:
用static 修饰的方法可以直接被调用。
不用static修饰的需要先实例化一个对象后才可以被调用。

用static的最大特点:

①static的属性或方法可以由类名(类名.方法 ,类名.属性)直接调用/访问,而不是对象名称。
因为static成员(对象和方法)属于类而不属于对象。
因为静态的在对象创建前就存在了,不依赖对象是否被创建(不能依赖任何实例)

②static属性是一个共享属性。
(普通方法和静态方法都能调用)
普通方法可以访问/调用 静态和非静态的变量
静态方法可以访问/调用静态变量
静态方法不能访问/调用非静态变量。
总结:静态成员不能访问非静态成员

static main方法:

Static表示main()是一个静态方法,不创建类的对象仍可执行(可以不依赖对象而存在)。
public static void main(String[] args) {}
public JVM要调用类的main()方法,所以public
static JVM执行时不创建(依赖)对象,所以static (由类名直接调用)
String[] args接受运行时的参数

static代码块:

不在任何方法体中
类被载入时,静态代码块被执行,且只执行一次。
常用来进行类属性的初始化。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值