笔记_java_review_6_静态成员&非静态成员

17 篇文章 1 订阅

静态&非静态变量


package com.mgg.review;

import java.util.Random;

/*
 *Static与类有关,随着类的加载而加载,存活时间较长;非静态的与实例化后的对象有关,随着对象的存在而存在
 *静态方法只能访问静态成员(变量&方法),不能直接访问非静态成员(变量&方法),如果想要访问则需要先创建对象,因为静态成员是优先于对象存在的,在静态方法加载进内存时,非静态成员还未进入内存中
 *在静态方法中,没有this/super关键字
 *非静态方法可以访问静态/非静态成员
 *静态变量用大写,作为常数使用
 *调用其他类的静态方法是可以用用类名.方法名 或者 对象名.方法名 即可以不用实例化
 *调用其他类的非静态方法必须先实例化创建对象后再用 对象名.方法名的方式调用
 *非静态方法既可以访问静态成员也可以访问非静态成员,静态方法只能访问静态成员
 *静态虽好,但是不可以乱用
 *静态,利:将对象共享的数据进行单独存储,节省空间,可以通过类名.成员名调用
 *弊:生命周期过长,访问出现局限性,静态只能访问静态,而不能直接访问非静态成员
 */
class Circle {
    //静态变量使用大写,静态变量作为常数使用
    static double PI = 3.1415926;
    static int R = 9;
}
class ZhengFangXing {
    static void zhouChang(){
        System.out.println("正方形周长为x");
    }
}
public class Demo6_StaticAndNonStatic {

    
    public static void main(String[] args) {
        Circle c = new Circle();

        System.out.println("该圆的面积为"+c.PI*c.R*c.R);
        System.out.println("该圆的周长为"+2*c.PI*c.R);
        
        //Random()方法是非静态方法,而主方法是静态的,所以调用Random()方法必须先实例化对象才可以
        Random rand = new Random();
        int i = rand.nextInt(100);
        System.out.println("100内随机数:"+i);
        
        //通过类名.成员名 调用
        ZhengFangXing.zhouChang();
    }
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值