三个修饰符:

一、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. PowerMock遇到的问题——3

    在用WhiteBox调用对象的私有方法时,如果要传的参数为空,如果直接在参数列表中写null的话,可能会报空指针异常,可以定义一个变量使他等于空,再把变量传进去就可以了.

  2. $modal

    $scope.open = function (size,data) {var modalInstance = $modal.open({ templateUrl: 'myModalContent.h ...

  3. bzoj 2301 莫比乌斯反演

    对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 这里题目意思很明显 对于要求的f[n] = sig ...

  4. java基础之 switch

    switch 语句的格式: switch ( 整型或字符型变量 ) { case 变量可能值1 :   分支一; break; case 变量可能值2 :   分支二; break; case 变量可 ...

  5. Controller方法的返回值

    方法的返回值1.ModelAndView这个就不多说,这是最基础的,前面定义一个ModelAndView,中途使用addObject方法添加属性,再返回.视图解析器会自动扫描到的.2.String这个 ...

  6. 创建dialog

    创建一个dialog有一下两种方式: 1.Data属性:DOM添加属性data-toggle="dialog"后,单机触发. a链接打开: <a href="jso ...

  7. SharePoint 2013 开发——构建工作流开发环境

    博客地址:http://blog.csdn.net/FoxDave 本篇我们来讲述一下如何搭建SharePoint 2013工作流开发环境. Windows Azure Workflow作为单独的可下 ...

  8. 2016 - 1- 22 NSURLConnetction --- POST请求

    一:与上一篇博客中的GET方法类似  只不过需要多注意,如果要改变请求的类型,需要生成NSMutableURLRequest对象才可以设置请求的类型. NSURL *url = [NSURL URLW ...

  9. Node.js的简介和安装

    一.Node.js的简介和安装 a)       什么是Node.js? Node.js是一个开发平台 让JavaScript运行在服务器端的开发平台 ---简单点说就是用JavaScript写服务器 ...

  10. UIkit框架之Uivew

    1.继承链:UIresponder:NSObject 2.通过使用 addGestureRecognizer:方法可以为视图添加手势 3.下面的属性都可以用来用于动画 @property frame ...