(十七)、static关键字
来源:互联网 发布:淘宝美国直邮有假货吗 编辑:程序博客网 时间:2024/05/21 14:06
static关键字:
static
1.表示静态,可以修饰属性和方法。 2.被static修饰的成员称之为静态方法或静态属性 3.不被static修饰的成员:实例方法,非静态方法 4.修饰属性时,表示这个属性是静态,这个属性是一种公共的资源,所有的对象所共有 5.当访问静态成员的时候,最标准的做法是不建议使用对象去访问静态属性 6.用静态的方式去访问静态成员:类名.静态成员 7.静态是随着类的加载而初始化,类第一次加载到内存时就完成了初始化 8.不要使用对象去访问静态属性 9.使用类名去访问静态方法,与对象没多大关系,属于类本身。 10.所有静态属性和方法,称之为:类属性和类方法 11.在实际中,很多工具类都是提供了很多静态方法供使用
注意:
静态方法不能访问非静态。 非静态可以访问静态
Demo:
Person类:
public class Person { private int age; private String name; public static String country = "中国"; public Person() { System.out.println("构造方法"); } public Person(int age, String name) { } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public static void speak() { System.out.println("静态方法" + Person.country); } public static void eat() { System.out.println("吃"); } static { System.out.println("静态代码块"); }}
Test类:
public class Demo1 { public static void main(String[] args) { Person person1 = new Person(20, "志玲"); Person person2 = new Person(30, "凤姐"); Person person3 = new Person(20, "冠希"); Person.country = "大中国"; System.out.println(person1.country); System.out.println(person2.country); System.out.println(person3.country); Person.speak();// 类名.方法 Person.eat(); }}
static修饰代码块,称之为静态代码块
构造代码块:实际没有使用价值
{ System.out.println("代码块"); } //先执行构造代码块,在执行构造方法。 static { System.out.println("静态代码块"); }
注意:静态代码块,只有类第一次加载时才会调用,静态代码块只执行一次
在类加载时,对静态的属性做一些初始化
Demo:
Person类:
public class Person { { System.out.println("构造代码块"); } static { System.out.println("静态代码块"); } public Person() { System.out.println("构造方法"); }}
Test类:
//执行顺序public class Test { public static void main(String[] args) { Person p = new Person(); // 静态代码块,构造代码块,构造方法 }}
总结:
类里面都可以放哪些?
1.成员(实例)变量(属性)
属于对象的,需要对象才能访问2.静态变量(静态属性)
不属于具体对象,使用静态方式访问:类.静态3.实例方法
属于对象的,需要对象才能访问4.静态方法
属于类,类方法。类名.方法
静态能访问非静态,非静态能访问静态5.构造方法
new创建对象事执行6.代码块:a.构造代码块:创建对象的时候调用,优先于构造方法
b.静态代码块:类加载到内存时调用,静态代码块只执行一次
0 0
- (十七)、static关键字
- static final(关键字)
- static(关键字)
- static(静态)关键字
- Java关键字(二)static关键字(static声明属性)
- Java关键字(三)static关键字(static声明方法)
- 面向对象的static关键字(类中的static关键字)
- 面向对象的static关键字(类中的static关键字)
- JAVA 基础 (static关键字)
- c++关键字:(三)static
- 关键字-分节2(static)
- static关键字(静态方法)
- 重温java(static关键字)
- Static(静态)关键字总结
- java(static关键字补充)
- static关键字(java基础)
- Java静态(static)关键字
- static关键字(学习记录)
- 2048小游戏
- Qt学习笔记(一)
- CSS3实现一个小风车【纯DOM+CSS3】
- 在线支付功能的设计及其实现
- 【杭电2059】经典DP--龟兔赛跑
- (十七)、static关键字
- 对android中ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解
- 再议libcurl编程
- 表白神器
- java实现md5加密示例
- Android Studio 出现AAPT err(Facade for): libpng error: Not a PNG file 错误解决方案
- Android LinearLayout设置白色背景、灰色边框、倒圆角
- curl的使用
- iOS Swift 基础