java修饰静态_Java-static修饰符及静态代码块
在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修饰符及静态代码块相关推荐
- C++:Static修饰变量 vs Static修饰函数
在C++语言中,Static关键字有两个作用:修饰变量和修饰函数. Static修饰全局变量叫做静态全局变量, Static修饰局部变量叫做静态局部变量, Static修饰函数叫做静态函数: 静态全局 ...
- java(5)---static修饰符
static修饰符 static修饰符的特点: 1):static修饰的成员(字段/方法),随着所在类的加载而加载. 当JVM把字节码加载进JVM的时候,static修饰的成员已经在内存中存在了. 2 ...
- [Java基础]final和static修饰符
final: final修饰局部变量时: static: static访问特点:
- 你知道Java中final和static修饰的变量是在什么时候赋值的吗?
开始 一位朋友在群里问了这样一个问题: 本着乐于助人的想法,我当时给出的回答: 后来我总觉得哪里不对劲,仔细翻阅了<Java虚拟机规范>和<深入理解Java虚拟机>这一部分的内 ...
- Java中final和static修饰的变量是在什么时候赋值的?
开始 一位朋友在群里问了这样一个问题: 本着乐于助人的想法,我当时给出的回答: 后来我总觉得哪里不对劲. 于是我仔细翻阅了<Java虚拟机规范>和<深入理解Java虚拟机>关于 ...
- Java logger变量用static修饰的说明
在QQ群中和诸多Java同行讨论得出以下结论: 我觉得日志用static修饰的思考策略应该是: 因为日志长期要用,而且,类的方法(不排除存在static方法)肯能被其他地方使用, 那么对于这类stat ...
- java 代码块的作用_Java核心(三):代码块的作用
Java中用{ }括起来的代码段就是代码块,他分为如下几种类型 位置 作用 局部代码块 在方法当中使用,作用是控制变量的生命周期. 局部代码块的变量,只能在代码块内部使用,在执行结束后会被Java回收 ...
- java 代码块 作用_Java核心(三):代码块的作用
Java中用{ }括起来的代码段就是代码块,他分为如下几种类型 位置 作用 局部代码块 在方法当中使用,作用是控制变量的生命周期. 局部代码块的变量,只能在代码块内部使用,在执行结束后会被Java回收 ...
- 25天掌握java基础(八)——static、单例、代码块、继承
文章目录 Demo08-static.单例.代码块.继承 1.static 1.1static静态关键字 1.1.1static修饰成员变量 1.1.2static修饰成员方法 1.1.3static ...
- 学习java第二周——面向对象、堆栈方法区、代码块、抽象类、接口和异常
面向对象 2020年9月7日星期一 概述:面向对象(Object Oriented)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,是一种对现实世界理解和抽象的方法,是计算机编程技术发 ...
最新文章
- Android NullPointerException解决方法(空指针异常)
- c#调用带有自定义表结构的存储过程
- 【UGV】Arduino Mega2560 获取小车角度信息,传感器JY60
- Angular DefaultDomRenderer2.setProperty - HTML的值是如何从Angular Component flow过来的,以及跨平台支持
- 获取表单对象,得三种方法getElementById(), getElementsByName(), and getElementsByTagName() 和用法...
- Controller中请求数据的方式
- 顺丰控股子公司亮榛拟1000万美元参投海外投资基金
- 文件上传_文件下载_后端获取登录用户---SpringCloud Alibaba_若依微服务框架改造---工作笔记003
- 【报告分享】2019Z世代消费力洞察报告-腾讯.pdf
- 一个女人不收拾厨房,卫生间便池也不刷,为什么老公也不嫌弃?
- BoltDB 一个简单的纯 Go key/value 存储 [译]
- Android 开发神器系列(工具篇)之 Android 屏幕共享工具
- 双硬盘安装ubuntu18.04踩坑及解决全过程
- bp神经网络图像压缩原理图,bp神经网络图像分类
- QT修改releas发布的exe图标
- androd欢迎页播放视频和广告页面
- 再谈微软复兴,纳德拉与库克、马斯克、皮查伊在管理上有什么不同
- android网络转圈,网络请求时显示正在请求转圈
- 008 计算某一日是这一年的第几天
- Android开发之最新Android Studio推送代码到最新GitHub教程 | Android Studio绑定GitHub | AS令牌登录GitHub | 创建GitHub令牌