Java学习笔记之---static

static不能修饰类,局部变量

(一)静态成员的特征

static+属性  静态属性

  1. 无论实例化出来多少个对象,都会共用同一块静态空间,类对象共享
  2. 静态成员从第一次被加载之后一直到这个类不再有任何对象被使用,也就是说被彻底的销毁的时候,才会进行资源的释放,生命周期长
public class Pig {
String name;
static int price;
}
class PigTest{
public static void main(String[] args){
Pig a=new Pig();
a.name="小乳猪";
a.price=1000;
Pig b=new Pig();
b.name="宠物猪";
b.price=500;
System.out.println(a.name+":"+a.price);
System.out.println(b.name+":"+b.price);
}

运行结果:

小乳猪:500

宠物猪:500

(二)静态成员访问方法
  1. 对象名.成员
  2. 类名.成员  (推荐使用) 静态的访问方法
(三)静态方法(类方法)

        static+方法

(四)静态方法的调用
  1. 对象名.方法
  2. 类名.方法
(五)总结

1.静态方法中不能直接访问同一个类中的非静态成员,可以通过实例化对象进行调用;只能直接调用同一个类中静态成员,

2.静态方法中不能使用this和super,this和super是对象范畴的,而静态方法是类范畴的

3.父类中的静态方法不能被子类重写

(六)静态代码块

优先级:从低到高

  1. 普通代码块:顺序执行,先出现,先执行
  2. 构造代码块:创建对象时调用,优先于构造方法执行
  3. 静态代码块:类加载时调用,优先于构造代码块执行
 
 public class Pig {

    String name;

   static int price;

   public void eat(String name,int price){

      this.price=price;

      this.name=name;

   }

   public void run(){

       System.out.println("我是普通代码块");

   }

    {

        System.out.println("我是构造代码块");

    }

   static{

       System.out.println("我是静态代码块");
}
}

运行结果:

我是静态代码块

我是构造代码块

我是普通代码块

Java学习笔记之---static的更多相关文章

  1. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

  2. Java学习笔记之static

    1.static可以用于修饰成员变量.方法以及块,并不会改变类中成员的权限修饰,如:private修饰的成员变量,类外只能类名或非私有方法调用,而不能使用对象名调用. 2.static方法和成员变量, ...

  3. JAVA学习笔记之static——2016.3.10

    static关键字   作用:修饰符,用于修饰成员<成员产量,成员方法>     1'被修饰的成员产量只有一份.     2'被修饰后的成员多了一种方式的访问,除了可以对象调用外,还可以被 ...

  4. Java学习笔记之——static关键字

    static属于类的,不属于任何一个对象的 static关键字的应用场景: 1.静态代码块:在类下用static修饰的代码块 static{ 代码: } 只能执行一次,是在第一次使用类之前执行 类加载 ...

  5. 1.6(java学习笔记)static关键字

    static关键字 1.static修饰变量也称静态变量,静态变量存放在静态区被该类的所有对象共享. 例如,定义了一个类class User{static Sring city = "a城& ...

  6. java学习笔记之基础篇

    java选择语句之switch   //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...

  7. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  8. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  9. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

随机推荐

  1. wpf 绑定表达式和手动更新源

    <Window x:Class="BindingExpressionExam.MainWindow"        xmlns="http://schemas.mi ...

  2. 关于QSocket的释放的一个需要注意的情况(必须先断开连接)

    最近在用QtNetwork编写服务器程序进行TCP/IP通信,大体过程如下: 1. 创建一个QTcpServer实例,监听目标IP和端口: 2. 一旦监听到有连接,获取和客户端之间的socket: 3 ...

  3. oracle rac 修改dbid和dbname

    =======================修改数据库dbid====================== 1.查看目前数据库dbid以及dbname [root@rac01 ~]# su - or ...

  4. ORACLE 11.2.0.4 RAC安装在rhel6上

    . 关闭ipv4防火墙(两个节点): [root@RAC01 ~]# service iptables stop [root@RAC01 ~]# service iptables status ipt ...

  5. Java8 的一些新特性总结

    目前Java8已经发布很多个版本了,对于Java8中的新特性虽然有各位大神进行jdk8的英文特性文档翻译,但都太官方化语言,对照几篇翻译本人对新特性文档做一下总结,以帮助我和各位不了解Java8新特性 ...

  6. Windows 10 版本信息

    原文 https://technet.microsoft.com/zh-cn/windows/release-info Windows 10 版本信息 Microsoft 已更新其服务模型. 半年频道 ...

  7. 在 Windows 10 专业版、企业版或教育版上设置展台

    原文: 在 Windows 10 专业版.企业版或教育版上设置展台 Set up a kiosk on Windows 10 Pro, Enterprise, or Education 适用于 Win ...

  8. Linux ADF(Atomic Display Framework)浅析---概述

    概述 因为工作关系,最近有涉及到ADF(Atomic Display Framework)相关的内容,部分内容来自互联网 ADF(Atomic Display Framework)是Google新增的 ...

  9. C#WinForm线程基类

    在CS模式开发中一般我们需要用到大量的线程来处理比较耗时的操作,以防止界面假死带来不好的体验效果,下面我将我定义的线程基类给大家参考下,如有问题欢迎指正. 基类代码 #region 方法有返回值 // ...

  10. Delphi中,indy控件实现收发邮件的几点学习记录( 可以考虑加入多线程,用多个邮箱做一个邮箱群发器) 转

    关于用Delphi中的Indy控件实现收发邮件的几点学习记录             这几天心里颇不宁静,不是因为项目延期,而是因为自己几个月前做的邮件发送程序至今无任何进展,虽然一向谦虚的人在网上发 ...