在java面向对象设计的类中,经常使用到static修饰符修饰变量,现在来看看static修饰符作用和特点

一:static修饰的变量可以直接通过类名.的方式直接调用

public class static_about {

public static void main(String[] args) {

Student student1 = new Student();

Student student2 = new Student();

student1.room="101";

System.out.println(student1.room);//输出101

System.out.println(student1.room);//输出101

student1.method();//输出成员方法

Student.methodstatic();//输出静态方法

}

}

class Student{

private String name;

private int age;

static String room;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public Student(){

}

public Student(String name, int age) {

this.name = name;

this.age = age;

}

public void method(){

System.out.println("成员方法");

}

public static void methodstatic(){

System.out.println("静态方法");

}

}

在上述代码中,Student类当中,有三个属性,但是room这个属性和methodstatic这个方法被static修饰了 ,所以此时 room这个成员变量就成了静态变量,methodstatic也就成了静态方法,且无论是静态方法还是静态变量都需要new出对象可以直接通过类名.的方式调用,且当我们通过对象调用静态方法其实再javac中还是通过类名.静态变量的方式去获取,所以和对象是无关的。由于这个原因,静态方法中也就不能使用this关键词(this代表的是当前调用的对象,但是静态方法是和对象无关,所以不能使用this关键词)

二:静态方法访问不了非静态变量

private String name;

private int age;

static String room;

public String getName() {

return name;

}

public void method(){

System.out.println("成员方法");

}

public static void methodstatic(){

System.out.println(age);//此时报错

System.out.println("静态方法");

}

在java内存当中,会先加载静态变量,再加载非静态变量,所以内存先加载了静态方法,但是非静态变量此时还没加载到内存当中,所以程序报错:Error:无法从静态上下文获取非静态变量age

三:静态代码块

在上述类中,加入了static修饰的代码块,也就是静态代码块,静态代码块,可以看出静态代码块有两个特点:

1.比非静态变量先执行(在method方法后面但是先输出)

2.在本类中只执行一次(两次new对象只打印了一次)

标签:Java,name,静态,age,修饰符,static,静态方法,public

来源: https://www.cnblogs.com/bai-boy/p/12175947.html

java修饰静态_Java-static修饰符及静态代码块相关推荐

  1. C++:Static修饰变量 vs Static修饰函数

    在C++语言中,Static关键字有两个作用:修饰变量和修饰函数. Static修饰全局变量叫做静态全局变量, Static修饰局部变量叫做静态局部变量, Static修饰函数叫做静态函数: 静态全局 ...

  2. java(5)---static修饰符

    static修饰符 static修饰符的特点: 1):static修饰的成员(字段/方法),随着所在类的加载而加载. 当JVM把字节码加载进JVM的时候,static修饰的成员已经在内存中存在了. 2 ...

  3. [Java基础]final和static修饰符

    final: final修饰局部变量时: static: static访问特点:

  4. 你知道Java中final和static修饰的变量是在什么时候赋值的吗?

    开始 一位朋友在群里问了这样一个问题: 本着乐于助人的想法,我当时给出的回答: 后来我总觉得哪里不对劲,仔细翻阅了<Java虚拟机规范>和<深入理解Java虚拟机>这一部分的内 ...

  5. Java中final和static修饰的变量是在什么时候赋值的?

    开始 一位朋友在群里问了这样一个问题: 本着乐于助人的想法,我当时给出的回答: 后来我总觉得哪里不对劲. 于是我仔细翻阅了<Java虚拟机规范>和<深入理解Java虚拟机>关于 ...

  6. Java logger变量用static修饰的说明

    在QQ群中和诸多Java同行讨论得出以下结论: 我觉得日志用static修饰的思考策略应该是: 因为日志长期要用,而且,类的方法(不排除存在static方法)肯能被其他地方使用, 那么对于这类stat ...

  7. java 代码块的作用_Java核心(三):代码块的作用

    Java中用{ }括起来的代码段就是代码块,他分为如下几种类型 位置 作用 局部代码块 在方法当中使用,作用是控制变量的生命周期. 局部代码块的变量,只能在代码块内部使用,在执行结束后会被Java回收 ...

  8. java 代码块 作用_Java核心(三):代码块的作用

    Java中用{ }括起来的代码段就是代码块,他分为如下几种类型 位置 作用 局部代码块 在方法当中使用,作用是控制变量的生命周期. 局部代码块的变量,只能在代码块内部使用,在执行结束后会被Java回收 ...

  9. 25天掌握java基础(八)——static、单例、代码块、继承

    文章目录 Demo08-static.单例.代码块.继承 1.static 1.1static静态关键字 1.1.1static修饰成员变量 1.1.2static修饰成员方法 1.1.3static ...

  10. 学习java第二周——面向对象、堆栈方法区、代码块、抽象类、接口和异常

    面向对象 2020年9月7日星期一 概述:面向对象(Object Oriented)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,是一种对现实世界理解和抽象的方法,是计算机编程技术发 ...

最新文章

  1. Android NullPointerException解决方法(空指针异常)
  2. c#调用带有自定义表结构的存储过程
  3. 【UGV】Arduino Mega2560 获取小车角度信息,传感器JY60
  4. Angular DefaultDomRenderer2.setProperty - HTML的值是如何从Angular Component flow过来的,以及跨平台支持
  5. 获取表单对象,得三种方法getElementById(), getElementsByName(), and getElementsByTagName() 和用法...
  6. Controller中请求数据的方式
  7. 顺丰控股子公司亮榛拟1000万美元参投海外投资基金
  8. 文件上传_文件下载_后端获取登录用户---SpringCloud Alibaba_若依微服务框架改造---工作笔记003
  9. 【报告分享】2019Z世代消费力洞察报告-腾讯.pdf
  10. 一个女人不收拾厨房,卫生间便池也不刷,为什么老公也不嫌弃?
  11. BoltDB 一个简单的纯 Go key/value 存储 [译]
  12. Android 开发神器系列(工具篇)之 Android 屏幕共享工具
  13. 双硬盘安装ubuntu18.04踩坑及解决全过程
  14. bp神经网络图像压缩原理图,bp神经网络图像分类
  15. QT修改releas发布的exe图标
  16. androd欢迎页播放视频和广告页面
  17. 再谈微软复兴,纳德拉与库克、马斯克、皮查伊在管理上有什么不同
  18. android网络转圈,网络请求时显示正在请求转圈
  19. 008 计算某一日是这一年的第几天
  20. Android开发之最新Android Studio推送代码到最新GitHub教程 | Android Studio绑定GitHub | AS令牌登录GitHub | 创建GitHub令牌

热门文章

  1. 用Python做一个翻译软件,还怕英语不好?
  2. Flask-RESTful之请求处理
  3. docker 上传到自己的容器
  4. 数据结构里面的七大查找算法
  5. 小作文十大必背范文:五星级真题
  6. python 正则表达式re常用操作符 使用方法 怎么用re正则表达式表示一个IP地址:0-255
  7. Linux里检查的一些目录!
  8. GNN|如何做的比卷积神经网络更好?
  9. 语义分割网络经典:unet
  10. 14 类编程题解法总结