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. jquery li练习

    <!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  2. WPF DataGrid 的RowDetailsTemplate的使用

    <Window x:Class="DataGridExam.DataGridRowDetailsExam"        xmlns="http://schemas ...

  3. 【C#】解决MouseHook捕获鼠标动作,在有些电脑上SetWindowsHookEx失败返回0的问题

    原文:[C#]解决MouseHook捕获鼠标动作,在有些电脑上SetWindowsHookEx失败返回0的问题 最近在debug鼠标位置捕获的功能时发现在其中的一台开发电脑上,SetWindowsHo ...

  4. 编译时MSIL注入--实践Mono Cecil(1)

    原文:编译时MSIL注入--实践Mono Cecil(1) 紧接上两篇浅谈.NET编译时注入(C#-->IL)和浅谈VS编译自定义编译任务—MSBuild Task(csproject),在第一 ...

  5. 零元学Expression Blend 4 - Chapter 4元件重复运用的观念

    原文:零元学Expression Blend 4 - Chapter 4元件重复运用的观念 本章将教大家Blend元件重复运用的观念,这在Silverlight设计中是非常重要的,另外加码赠送渐层工具 ...

  6. WPF WindowChrome 自定义窗口

    1.wpf自定义窗口: WindowChrome类描述:https://msdn.microsoft.com/zh-cn/library/system.windows.shell.windowchro ...

  7. 微信小程序把玩(四十一)canvas API

    原文:微信小程序把玩(四十一)canvas API 绘图是每个移动应用必备的技术,基本上和Android,IOS,等移动开发都是相同的,创建个上下文,给你个画布再上画,官网给的小例子都比较全了自己去看 ...

  8. Inno Setup制作最简单的安装程序

    目标就是[把exe程序放到制定目录,然后自动把工程需要的dll放到system32目录下,自动注册注册表.] 实现上述需求,用Inno Setup可以非常方便快捷实现. 安装Inno Setup. 点 ...

  9. WebBrowser中获得脚本中的变量值

    //项目中添加Micrsoft.mshtml引用 --c:/temp/temp.htm-- <html> <script language="JavaScript" ...

  10. OpenSSL包括了8个功能

    什么是OpenSSL 众多的密码算法.公钥基础设施标准以及SSL协议,或许这些有趣的功能会让你产生实现所有这些 算法和标准的想法.果真如此,在对你表示敬佩的同时,还是忍不住提醒你:这是一个令人望而生畏 ...