static静态修饰符

static在类中使用修饰成员变量,在方法中使用修饰成员方法,修饰方法时叫做静态方法,修饰属性时叫做静态属性也叫类变量

静态属性

package Demo3;
public class demo002 {private static String name="许志滨";      //定义静态变量private String home="河南";                //定义非静态变量public static void main(String[] args) {//通过类调用属性System.out.println(demo002.name); //通过类名调用类下的属性System.out.println(demo002.home);//无法直接调用类下的非静态home属性//通过方法调用属性demo002 d2=new demo002();          //实例化对象System.out.println(d2.home); //调用d2对象下的name属性System.out.println(d2.name);    //调用d2下的name属性}
}

执行结果:

java: 无法从静态上下文中引用非静态 变量 home

无法从类名中调用非静态属性home,可以通过对象进行调用

静态方法

非静态方法可以调用静态方法里面的所有属性,而静态方法只能调用静态方法的属性

静态方法无法调用非静态属性

静态方法无法调用非静态属性,而非静态方法可以调用静态属性和非静态属性

静态方法可以直接被调用,而非静态不能直接被调用

需要通过对象才能调用非静态方法

demo002 demo002=new demo002();
demo002.demo2();

静态代码块

为了初始化一些属性可以使用静态代码块,加载初始化的数据。对象在创建的时候先走静态代码块,静态代码块执行完执行匿名代码块,之后执行构造方法

package Demo3;
public class demo003 {{//匿名代码块,,在创建对象的时候已经创建了,在构造方法之前}static {//静态代码块//优先级最高的是静态代码块//在类加载的时候就执行,但是只能执行一次}public static void main(String[] args) {//方法体}
}

代码块执行顺序:

package Demo3;
public class demo003 {{System.out.println("我是匿名代码块");}static {System.out.println("我是静态代码块");}public demo003() {System.out.println("我是构造方法");}public static void main(String[] args) {new demo003();}
}

执行结果:

我是静态代码块
我是匿名代码块
我是构造方法

静态代码块只会在类加载的时候执行一次

package Demo3;
public class demo003 {{System.out.println("我是匿名代码块");}static {System.out.println("我是静态代码块");}public demo003() {System.out.println("我是构造方法");}public static void main(String[] args) {new demo003();System.out.println("--------------");new demo003();}
}

执行结果:

我是静态代码块
我是匿名代码块
我是构造方法
--------------
我是匿名代码块
我是构造方法

静态导入包

import static java.util.Scanner.*;
import static java.util.Arrays.toString;

final修饰父类子类就无法继承

java全栈系列之JavaSE-面向对象(static关键字)040相关推荐

  1. java全栈系列之JavaSE--冒泡排序028

    冒泡排序是在一组数组中将相邻的两个元素进行比较,可以按由大到小或者由小到大的循序排列, 冒泡排序示意图: 每循环一次相邻的两个数进行大小比较,若由小到大的循序则大的数据在小的数据右侧 冒泡排序流程图 ...

  2. Java全栈系列笔记

    Java全栈系列笔记 全部文档.项目.源码: github:https://github.com/name365/Blog-Java 码云:https://gitee.com/yang365/Blog ...

  3. java全栈系列之JavaSE-面向对象(方法重写)037

    子类在调用父类的私有方法中不能直接调用,但是可以通过get方法进行调用,修改属性的值可以通过set方法进行修改.而子类想要修改父类中的方法可以使用方法重写进行操作. 方法重写与之前的方法重载不同 回顾 ...

  4. java全栈系列之JavaSE-面向对象(异常详解)043

    Exception可以被程序处理的异常 异常指的是程序在运行中出现了无法预料的状况,异常发生在程序运行期间.程序中可以选择捕获异常,也可以不处理使用默认的异常 算术异常 通常是由于算术计算错误导致的 ...

  5. java全栈系列之JavaSE-稀释数组029

    稀疏数组 当一个数组中的大部分元素为同一值的数组时,可以使用稀疏数组来保存该数组 稀疏数组的处理方式: 记录数组中一个有几行几列,有多少个不同的值,把具有不同值的元素和行列以及值记录在一个小规模的数组 ...

  6. java全栈系列之JavaSE--数组的使用025

    数组基本使用 打印全部数组元素 //打印全部数组元素//定义数组int [] Array=new int[5];//赋予初始值Array[0]=100;Array[1]=200;Array[2]=30 ...

  7. java全栈系列之JavaSE--递归详解022

    递归 通俗来讲递归就是自己调用自己,例如:方法A调用方法A,递归可以大大减少程序的代码量,递归调用次数过多会严重影响机器的性能 如下,我定义了一个方法名字叫demo,在demo方法里面自己调用自己 p ...

  8. Java全栈学习day05(面向对象02)

    1.继承 继承的概念 实现代码的重用,子类继承父类的一切属性和方法(除了构造方法),父类的私有属性.方法不能直接使用,需要get和set. package com.test;public class ...

  9. java全栈系列之JavaSE-面向对象(方法的定义与调用)030

    java面向对象编程 面向对象&面向过程 前言: 之前的代码大多数都是属于面向过程的,在程序中有main()方法也叫主方法,程序会由上至下执行main()里面的内容.程序里的方法:例如编写一个 ...

最新文章

  1. MapRdeuceYarn的工作机制(YarnChild是什么)
  2. linux 权限属性,linux 文件或目录的权限和属性
  3. Oracle Merge Into 的用法详解实例
  4. org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.demo.pojo.IdCard
  5. 《JavaScript权威指南》学习笔记 第三天 找个对象
  6. button执行onclick函数_JavaScript 函数定义与调用
  7. 公共计算机房电气设计规范,《住宅建筑电气设计规范》(总结版)
  8. python 异步定时任务
  9. php js 批量打开页面
  10. Android之复合按钮CompoundButton
  11. js实现数字转换大写金额
  12. 克拉克误差网格分析程序(Performs Clarke Error Grid Analysis)
  13. torch.max使用示例
  14. STC系列51单片机延时程序汇总
  15. Pandas数据结构
  16. 苹果手机小圆圈怎么设置_敬业签苹果手机版软件小账本怎么设置密码?
  17. python海龟交易策略_【手把手教你】用Python量化海龟交易法则 - 简书
  18. 甲方乙方中的深刻哲理
  19. Git快速入门-git stash 暂存变更,git reset 撤销commit,git revert 回退远程版本库
  20. 为什么手机计算机打不开怎么办,word打不开怎么解决,手机word打不开怎么办

热门文章

  1. vue——初学Vue
  2. 叮当健康再闯IPO,三年累亏近30亿,如何杀出巨头重围?
  3. 实例讨论数据可视化的配色思路
  4. 笔记 GWAS 操作流程2-3:最小等位基因频率
  5. 华为云cce生态环境搭建整理
  6. jacobWord案例
  7. c语言rand再哪个头文件里,c语言下rand函数在哪个头文件中
  8. 报错:Fatal error: Uncaught Error: Call to undefined function mysql_connect()解决
  9. centos7中的date命令
  10. python将空格分开_python将每个单词按空格分开并保存到文件中