一、基础概念

  静态关键字 static 是成员修饰符,直接用于修饰成员。

  (一)特点:

    1.被静态修饰的成果,可以直接被类名所调用。

    2.静态成员优先于对象存在。

    3.静态成员随着类的加载而加载。随着类的消失而消失。静态成员的生命周期很长。

  (二)注意事项:

    1.静态方法只能访问静态成员,不能访问非静态成员。

    2.静态方法中不能出现this或者super关键字。

    3.主函数是静态的。

  (三)什么时候用:

    1.成员变量:如果数据在所有对象中都是一样的。直接用静态修饰。

    2.成员函数:如果函数没有访问过对象中的属性数据,那么该函数就是静态的。

  (四)成员变量和静态变量的区别:

    1.名称:成员变量也叫实例变量。静态变量也叫类变量。

    2.内存存储:成员变量存储到堆内存的对象中。静态变量存储到方法区的静态区中。

    3.生命周期:成员变量随着对象的出现而出现,随着对象的消失而消失。静态变量随着类的加载而加载。随着类的消失而消失。

  (五)静态代码块:

    1.随着类的加载而执行,而且只执行一次。

    2.给类进行初始化。

    3.类不需要创建对象,但是需要初始化。这是将部分代码存储到静态代码块中。

二、实例代码 

 class Person
{
private String name;
private int age;
static String country = "CN";//定义静态变量country Person(String name,int age)
{
this.name = name;
this.age = age;
}
public void show()
{
System.out.println("name="+name+",age"+age);
}
//既然sleep函数没有访问到对象中的属性,可以用static修饰该方法。(节约内存的使用)
public static void sleep()
{
System.out.println("sleep......"); } static//静态代码块
{
System.out.println("static......");
} static void show1()
{
System.out.println(country);//直接访问静态变量
}
static void show2()
{
System.out.println(Person.country);//通过类名的方式访问静态变量
} } class StaticDemo
{
public static void main(String[] args)
{
Person p = new Person("xiaoming",20);
Person.sleep();//通过类名的方式调用静态sleep函数
Person.sleep();
System.out.println(Person.country);//通过类名访问,输出静态变量country的值
Person.show1();
Person.show2();
}
}

三、代码运行

  

 

  

Java面向对象之关键字static 入门实例的更多相关文章

  1. Java面向对象之关键字final 入门实例

    一.基础概念 1.关键字final可以修饰类.函数.变量. 2.关键字final修饰的类不可以被继承. 3.关键字final修饰的方法不可以被覆盖. 4.关键字final修饰的变量是一个常量,只能被赋 ...

  2. Java面向对象之关键字super 入门实例

    一.基础概念 (一)super关键字 super关键字的用法和this相似.this代表的是当前对象.super代表的是父类中内存空间. 子父类中是不会出现同名属性的情况. (二)继承中.成员变量问题 ...

  3. Java面向对象之关键字this 入门实例

    一.基础概念 1.关键字this是指:哪个对象调用this所在的函数.this就指向当前这个对象. 2.用法: (1).this关键字可以解决:构造函数私有化问题. 注意:构造函数只能被构造函数调用, ...

  4. Java面向对象之抽象类abstract 入门实例

    一.基础概念 抽象事物,是若没有具体的信息可以描述这个事物,这个事物可以称为抽象事物. 抽象类,是不断的向上抽取而来.抽取方法声明而不确定具体的方法内容.由不同的子类来完成具体的方法内容. (一)抽象 ...

  5. Java面向对象之接口interface 入门实例

    一.基础概念 (一)接口可以简单的理解为,是一个特殊的抽象类,该抽象类中的方法都是抽象的. 接口中的成员有两种:1.全局常量 2.抽象方法 定义接口用关键字interface,接口中的成员都用固定的修 ...

  6. Java面向对象之继承extends 入门实例

    一.基础概念 (一)继承的好处: 1.继承:提高了代码的复用性. 2.让类与类之间产生了关系,给多态这个特征提供了前提. (二)继承的种类: 1.单继承:一个类只能有一个父类. 2.多继承:一个类可以 ...

  7. JAVA面向对象-----final关键字

    JAVA面向对象-–final关键字 1:定义静态方法求圆的面积 2:定义静态方法求圆的周长 3:发现方法中有重复的代码,就是PI,圆周率. 1:如果需要提高计算精度,就需要修改每个方法中圆周率. 4 ...

  8. JAVA面向对象-----super关键字

    JAVA面向对象-–super关键字 1:定义Father(父类)类 1:成员变量int x=1; 2:构造方法无参的和有参的,有输出语句 2:定义Son类extends Father类 1:成员变量 ...

  9. Java面向对象重要关键字

    面向对象过程接触的重要关键字:extends   super   this   final   static  extends 关键字用作继承功能,可以申明一个类是从另外一个类继承而来的,一般形式如下 ...

随机推荐

  1. JAVA,模拟HTTP登录(略有修改) ----转载自http://zhoujingxian.iteye.com/blog/439738

    /* * 网上的一个模拟登录或者模拟注册程序 * 2013-8-5 */ package Socket_Http; import java.io.BufferedReader; import java ...

  2. c#6.0特性

    (1)可以直接对自动属性初始化,而且允许非标准属性使用 例如: public string Gender{get;}="男";//非标准属性 public DateTime Bir ...

  3. 四道腾讯的javascript面试题

    今天整理自己的文件夹时,发现了曾经面试腾讯实习生时的被问挂了的面试题,我将它们整理好了供大家借鉴.当时要求的是手写代码.汗啊,我那时弱爆了! 1,将给定数组转换为一个随机数组 Array.protot ...

  4. keil:C语言里面调用汇编程序

    C语言直观,汇编效率高,C里面嵌入汇编是很好的选择. 路径大概如图: mian.c是我的C语言程序,Func.s是汇编程序. 主要是Init_1这个函数的实现在汇编文件里面,使用汇编实现的. 首先在C ...

  5. Android开发笔记 TableLayout常用的属性介绍

    今天看了安卓简单控件的布局方式,大概有绝对.相对.表格.线性.帧式布局五种方式,表格布局里面的一些属性相对来说比较复杂,下面主要谈谈表格方式布局的一些属性   TableLayout经常用到的属性有: ...

  6. delphi 在桌面屏幕上模拟鼠标单击

    delphi 在桌面屏幕上模拟鼠标单击 procedure TFrmUnicom.Button1Click(Sender: TObject); var oldPoint, newPoint: TPoi ...

  7. 把jpg文件读取到内存char* 再转换成CImage

    网络上找到大神写的转换方法,不过就记下来,学习学习: 当然转成CImage之后就可以从CImage转换成HBITMAP 了 void DrawPic(CDC *pDC,char *buf,int le ...

  8. java多线程编程核心技术-笔记

    一.第一章 1.自定义线程类中实例变量针对其他线程有共享和不共享之分,自定义线程中的变量,如果是继承自thread类,则每个线程中的示例变量的更改,不影响其他线程2.当多个线程去访问一个局部变量是会产 ...

  9. 移植OK6410'S dm9000ae…

    转载自:http://lagignition.blog.163.com/blog/static/12873002320110443341961/

  10. Sprint + mybatis 编写测试

    今天使用Spring 和mybatis框架编写项目,写了个测试方法方便测试,之前因为一直报空指针,注入不了,所以简单记录一下,方便以后使用 root.xml <?xml version=&quo ...