1.static关键字

 public class Test{
public static void main(String[] args){
Persion p1=new Persion();
Persion p2=new Persion();
p1.name="小明";
p1.country="中国";
p1.age=20;
p2.name="小花";
p2.age=15; System.out.println(p1);
System.out.println(p2);
System.out.println(Persion.country);
//用类直接可以调用静态方法
Student.print(); }
}
/*
static关键字
作用:是一个修饰符,用于修饰成员(成员变量,成员方法)
1.被static修饰后的成员变量只有一份
2.当成员被static修饰之后,多了一种访问方式,除了可以对象调用之外,还可以被类直接调用(类名.静态成员) static的特点:
1.随着类的加载而被加载
2.优先于对象的存在
3.被所有的对象所共享的
4.可以直接被类名所调用 存放位置:
类变量随着类的加载而存在于data内存区
实例变量随着对象的建立而存在于堆内存 生命周期:
1.类变量生命周期最长,随着类的消失而消失
2.实例变量生命比类变量短,它是随着对象的消失而消失 方法注意事项:
1.静态的方法只能访问静态的成员
2.非静态的方法既能访问静态的成员(成员变量,成员方法)也能访问非静态成员
3.静态的方法中是不可以定义this super关键字
因为静态优先于对象存在,所以静态方法不可以出现this
*/ class Persion{
String name;
int age;//实例变量
static String country;//静态变量(类变量) public String toString(){
return "姓名:"+name+"\n"+"年龄:"+age+"\n"+"国家:"+country;
}
} class Student{
String name;
static String country;
static void print(){//此方法没有访问非静态成员,那这个功能就可以定义为静态的
System.out.println(country);
}
void p(){
System.out.println(country);
}
}

2.什么时候使用静态

从两方面入手:

什么时候使用静态的成员变量?

  当属于同一个类的所有对象出现共享数据时,需要将存储这个共享数据的成员变量用static修饰

什么时候使用静态方法?

  当功能(方法)内部没有访问到非静态的成员时(对象特有的数据),那么该功能可以定义成静态的

3.练习 静态工具类

/*
静态应用工具类
每一个应用程序都有共性的功能
可以将这些功能进行抽取、独立封装,以使复用
对象的作用:对象是用来封装数据的,只要这个类里面有非静态的成员时,那对象就必须存在
*/ public class Test{
public static void main(String[] args){
int[] arr={232,43,535,343,23,43,3,4}; System.out.println(Compare.max(arr));//使用类名直接调用静态方法
}
}
public class Compare{
private Compare(){//构造方法私有,无法再创建对象
}
public static int max(int[] arr){//静态方法
int max=arr[0];
for(int i=0;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];
}
}
return max;
}
}

Java基础22-Static关键字的更多相关文章

  1. Java基础之static关键字的用法

    Java中的static关键字主要用于内存管理.我们可以应用static关键字在变量.方法.块和嵌套类中. static关键字属于类,而不是类的实例.        静态(static)可以是: 变量 ...

  2. Java基础系列--static关键字

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/8477914.html 一.概述 static关键字是Java诸多关键字中较常使用的一个,从 ...

  3. 【Java基础】static关键字相关

    static关键字特点: 随着类的加载而加载. 优先于对象存在. 被所有对象共享 可以直接被类名调用. 使用注意: 静态方法只能访问静态成员. 但非静态成员可以访问静态成员. 静态方法中不能使用thi ...

  4. Java基础(十)--static关键字

    static关键字通常应用在字段.方法.静态块,还有冷门一点的内容:静态内部类.静态导入 static字段: static字段也就是静态变量,是属于类的,被所有的对象所共享,只有当类初次加载的时候保存 ...

  5. Java基础(二)-static关键字分析

    static关键字是我们在编程中经常会使用到的,但有些可能只知其然而不知其所以然.下面介绍static关键字的作用再通过例子结合说明. static关键字共有五种作用(先说明static所修饰的不会改 ...

  6. java基础 2 static关键字

    2. static关键字 变量:静态变量在内存中只存在一份,只在类第一次实例化时初始化一次,同时类所有的实例都共享静态变量,可以直接同过类名                    来访问他. 方法:静 ...

  7. 【Java基础】static关键字的理解

    修饰范围: 可以修饰成员变量和成员方法.静态的特点: A:随着类的加载而加载 B:优先于对象存在 C:被类的所有对象共享 这其实也是我们判断该不该使用静态的依据. 举例:饮水机和水杯的问题思考可通过类 ...

  8. 094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 04 static关键字(续)

    094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  9. 093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 03 static关键字(下)

    093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  10. 092 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 02 static关键字(中)

    092 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

随机推荐

  1. 注入学习1:SQL注入语句大全

    学习背景 之前做了xss预防,以及些许的注入预防了,但是不够全面,如果还是搜集了下一些常用的注入手段,以此用来进行更好的预防. 什么是注入 一般来说,SQL注入一般存在于形如:HTTP://xxx.x ...

  2. Oracle的列操作(增加列,修改列,删除列),包括操作多列

    增加一列: alter table emp4 add test varchar2(10); 修改一列: alter table emp4 modify test varchar2(20); 删除一列: ...

  3. postfix 安装配置详解

    [ref: http://blog.51yip.com/server/1382.html] [http://blog.chinaunix.net/uid-174325-id-1744019.html] ...

  4. springcloud 实现微服务间调用

    package com.idoipo.ibt.config; import org.apache.http.HttpException; import org.apache.http.HttpRequ ...

  5. orcl 对table的一些操作

    删除 table:drop table 表名: 恢复删除 : flashback table 表名 to before drop: 清空table : truncate table 表名; 恢复清空: ...

  6. 图像读取Exif小知识,图像扶正,还原拍摄时的角度

    在做人脸识别的时候发现很多手机拍摄的图像在C#读取之后方向出现了错误,Bitmap中的宽度和实际的windows的文件属性内的参数相反,引起一阵测试和思考,后来百度出来可以用Exif来解决 githu ...

  7. Regex 常用的正则表达式

    .校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非 ...

  8. subset子集全排序问题

    思路一 可以用递推的思想,观察S=[], S =[1], S = [1, 2] 时解的变化. 可以发现S=[1, 2] 的解就是 把S = [1]的所有解末尾添上2,然后再并上S = [1]里面的原有 ...

  9. 单链表倒数第K个节点的查找和显示

    1.使用一个固定长度队列装链表段,当遍历到链表根时,返回队列头元素. class Node{ int value; Node next; public Node(int value){ this.va ...

  10. 通用唯一识别码——UUID(Python)

    一.概述: UUID(Universally Unique Identity)的缩写,是一种软件建构的标准,通常由32字节16进制数表示(128位),它可以保证时间和空间的唯一性.目前应用最广泛的UU ...