Java中静态类与非静态类的简单归纳-奔跑的皮皮熊

Java中的静态内部类非静态类

        关于他们的区别,可能有的人想问:是不是静态类的类就是静止固定的,不能被修改调用的?还是系统内部的类?而非静态类是活跃的,可以被修改?被调用?非也!
    正式归纳之前我想给大家讲一个比方。很多人看过武侠片,那些四海扬名的大虾有自己的亲儿子也或许有自己收的义子。那么静态类(static)就好像是大虾亲生的一样,调用其中的方法的时候直接(静态类名.函数名)就可以了,就好像别人看见静态类就知道他是大虾的亲儿子(大家就理解长得像就可以);而非静态类就不同了,为什么不同呢?非静态类就好像大虾的义子一样,江湖人或许并不知道大虾有这样一个义子,所以使用非静态类的方法时总要先new一个非静态类,告诉大家:嘿你们知道吗,我是义父是大虾。哈哈哈哈哈。。。。。。(好冷~~)


    由于是借鉴大神的博客,那我就说说我还能记住的特点:
             静态类:                          非静态类:
  a、拥有的属性:  是整个类共同所有                 类的各个对象单独拥有
  b、内存分配:    在内存上位置固定              为其中每个对象单独分配内存
  c、分配顺序:         先分配                             后分配


而我上面给大家的比方就是说静态类在调用其中的函数不需要将其实例化,直接调用就可以了,而非静态类在调用的时候则需要将其实例化再调用其中的函数(也就是new一个新的非静态类)


然后单独说一下静态类的特点吧:
1、如果在调用静态类的过程中修改了静态类变量的值或者静态类函数的内容则在静态类的整个作用域其改动都是有效的,也就是说整个工程文件中这个类的值都会跟着改变,不用一个个代码都跟着去改动
2、调用非常方便简单,直接调用,不用实例化

    给出自己举的例子:
public class A {
public static class B{
public static int a(int m,int n){
return m+n;
        }
  }
public static void main(String[] agrs){
int test1,p=1,q=2;
test1=B.a(p, q);
System.out.print(test1);
}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值