修饰符(static、final、abstract)第一篇
来源:互联网 发布:网络信息安全认证 编辑:程序博客网 时间:2024/06/05 04:14
三个修饰符:
一、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)第一篇
- 三个修饰符(abstract,static,final)
- 修饰符(final,static,abstract)
- static、final、abstract修饰符
- 修饰符(static、final、abstract)第二篇
- static、abstract、final修饰符总结
- Java中的abstract,static,final修饰符
- Java中的abstract,static,final修饰符
- java中的修饰符static/final/abstract/
- Java修饰符static,final,abstract
- final、static、abstract修饰符的作用
- 修饰符static、final、abstract与接口
- Java static、final、abstract修饰
- static final abstract 三个修饰符的总结
- java中的三大修饰符static、final、abstract
- 转载 java修饰符public final static abstract transient
- 黑马程序员_004_private、static、final、abstract修饰符
- Java修饰符 abstract,static,final 的区别
- C++指针的定义
- jQuery_解析xml文件
- 23种设计模式 第三部分 关系模式(2)模板方法模式
- 坚持#第23天~嘻嘻家玩了一天
- 网络异常,dns异常,qq能上但是网页打不开
- 修饰符(static、final、abstract)第一篇
- OpenGL + VS2015 + Windows10配置
- 折腾Ubuntu16.04
- C++指针 续
- QGroundControl —— MAVLink 命令
- Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace
- Effective Modern C++ 条款21 比起直接使用new,更偏爱使用std::make_unique和std::make_shared
- c++ 宏展开
- socket编程