三个修饰符:

一、static:

作用域:

1. 属性

1.1 静态属性不必要创建新对象,可直接用类调用

1.2 其值发生改变,则类中的值也会随之而变并延伸到其他对象中

例子:

class Animals {

// /1.static 修饰属性

static String a = "静态属性值";

String b = "非静态属性值";

}

Animals  ani=new Animals ();

ani.a="修改";

ani.b="修改非";

Animals  ani1=new Animals ();

ani1.a;//"修改";

ani1.b;// "非静态属性值";

1.3 static 不能修饰局部变量属性值

2. 方法

2.1 访问是static修饰的方法不必要创建新对象访问,可直接用类调用

2.2 在static修饰的方法中,只能访问:

2.2.1 全局变量中定义的static属性

2.2.2 static方法

2.2.3 其方法中定义的局部变量

2.3 不能使用this关键字

2.4 静态方法的覆写不能实现不了多态

3.修饰代码块

3.1 作用:

提高程序的性能

3.2 使用:

独立于方法

3.2 特点:

只在类加载时执行一次

可参考

练习代码君:

package com.jacob.javase;





/*

 * 修饰符:

 *    static详探

 */

class Animals {

// /1.static 修饰属性

static String a = "静态属性值";

String b = "非静态属性值";





public Animals() {

// Illegal modifier for parameter a1; only final is permitted

// 1.1、static String a1="";原因static不能修饰局部变量

}





// 2.static 修饰方法

public static void eat() {

// Cannot use this in a static context

// 2.1、this.a;//静态方法中不能使用this关键字

// int b=0;//方法中局部变量的值可访问

// 2.2、静态方法中只能调用静态方法(具体可参考main方法)

System.out.println("Animals静态方法");

// 2.3、静态方法中只能访问类全局中的静态属性

// System.out.println(b);

}





// 静态代码块:1.在类加载时实现一次 2.使用起来是独立于方法 3.提高程序的性能

static {

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

}





}





class Cat extends Animals {

// 2.4、 静态方法不能实现多态

public static void eat() {

System.out.println("cat静态方法");

}

}





public class ModifierStatic {

public static void main(String[] args) {

Animals ani = new Animals();

ani.a = "修改后的静态属性值";

ani.b = "修改后的非静态属性值";

Animals ani1 = new Animals();

// 1.2、说明对象对类静态属性(类变量)值的改变,其类中值会相应改变(因为静态存储在静态数据区,可直接调用)

System.out.println("ani1中的a:" + ani1.a + " || " + "ani1中的b:" + ani1.b);

// 1.3、静态属性值可不必创建对象,直接用类调用,原因同上

System.out.println("Animals中的a:" + Animals.a);

Animals a2 = new Cat();

a2.eat();// ——Animals静态方法

Animals.eat();// —— Animals静态方法(静态方法同样可以用类直接调用)

}

}

修饰符(static、final、abstract)第一篇的更多相关文章

  1. 三大修饰符static,final,abstract,接口和抽象类的区别

    package com.cityhero.test; public class ThreeModifier { //static静态的 // 概念:static可以修饰方法和属性,被static修的方 ...

  2. 修饰符static和abstract

    修饰符static和abstract static static可以修饰类中的方法,属性等,被修饰后的方法和属性可以通过类名直接调用也可以通过对象调用.普通的变量只能通过对象进行调用. 静态方法直接可 ...

  3. Java从入门到放弃——05.修饰符static,final,权限修饰符

    本文目标 static final: 权限修饰符:public,private,protected,缺省 1.static 静态修饰符,被static修饰的变量或者方法会被加载进静态区内存,不需要创建 ...

  4. day01 包 权限修饰符 static final

  5. java修饰符public final static abstract transient

    JAVA 修饰符public final static abstract transient  关键字: public final static abstract ...  1.public prot ...

  6. 浅析java修饰符之public default protected private static final abstract

    浅析java修饰符之public default protected private static final abstract 一   修饰符的作用:用来定义类.方法或者变量,通常放在语句的最前端 ...

  7. 访问修饰符与可选修饰符static的使用

    在Java中修饰符较多,在这里简单说一说几个访问修饰符的选择使用,和可选修饰符static的使用. 一.访问修饰符:这是Java里用来控制访问类及类的方法.变量的访问权限,从而达到只暴露接口,来隐藏内 ...

  8. 【语法】修饰符 static extern const

    转载自:http://my.oschina.net/u/2560887/blog/552683 一.C语言中的static的作用 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有 ...

  9. 修饰符-static

    一.static静态修饰符 static修饰符能够修饰属性,方法,初始代码块,不能修饰局部变量和类. 静态的变量叫常量,非静态的变量叫实例变量. 1.修饰属性 package gc.test.java ...

  10. ArcGIS AddIN开发异常之--修饰符“static”对该项无效

    修饰符“static”对该项无效, 修饰符“internal”对该项无效. 该异常弹出的位置为Config.Designer.CS文件中相关插件的声明附近 internal static string ...

随机推荐

  1. 封装自己的JS库

    一.基础知识 1.点击计数 第一种: var aBtn=document.getElementsByTagName('input'); var i=0; for(i=0;i<aBtn.lengt ...

  2. 怎么学好python?

    文章摘自:http://www.jb51.net/article/16100.htm 1)学好python的第一步,就是马上到www.python.org网站上下载一个python版本.我建议初学者, ...

  3. MVC 3个重要的描述对象之ControllerDescriptor

    1.ControllerDescriptor 1.1 ReflectedControllerDescriptor public class HomeController : Controller { ...

  4. js用正则表达式控制价格输入

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  5. Python中的sorted函数以及operator.itemgetter函数 【转载】

    operator.itemgetter函数operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子. a = [1,2 ...

  6. HDU 5382 莫比乌斯反演

    题目大意: 求S(n)的值 n<=1000000 这是官方题解给出的推导过程,orz,按这上面说的来写,就不难了 这里需要思考的就是G(n)这个如何利用积性函数的性质线性筛出来 作为一个质数,那 ...

  7. iOS中Block使用探索

    Block介绍 Block在ios 4.0之后加入,并大量使用在新的ios api中.block是一个匿名的代码块,可以传递给其他对象的参数,并得到返回值.从本质上讲,block同其他普通的变量类似, ...

  8. Oracle数据库DECODE函数的使用.

    decode函数是Oracle数据库独有的. 语法为: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 例子:select decode(sign(变量1-变量2) ...

  9. .net CHARTING图表控件下载地址

    .net CHARTING是一款功能强大的图表控件,利用.NET framework和GDI+为工作于ASP.NET和Winform的C#和VB.NET开发人员提供可托管的图表解决方案,提供了多种2D ...

  10. Linux中的汇编简介

    GNU as汇编语法 GNU汇编语法使用的是AT&T汇编它和Intel汇编的语法主要有以下一些不同: AT&T汇编中的立即操作数前面要加上'$',寄存器操作数名前要加上百分号'%',绝 ...