JAVA类变量、类方法
类变量(static)
类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。
public class C {
public static void main(String[] args){ Child ch1 = new Child(12,"小小");
ch1.joinGame();
Child ch2 = new Child(13,"小红");
ch2.joinGame();
//调用类变量
System.out.println("一共有" + Child.total+ "小朋友");
}
} class Child{
public int age;
public String name; //total是静态变量,因此他可以被任何类调用
public static int total = 0; public Child(int age, String name)
{
this.age = age;
this.name = name;
} public void joinGame()
{
total++;
System.out.println("有一个小朋友加进来!");
}
}
运行结果
静态区块
只要程序启动就会被执行一次,也仅执行一次
public class C { static int i = 1;
static
{
System.out.println("静态区域块被执行一次");
//该静态区域块,只被执行一次,也不会因创建对象而触发
i++;
}
public C()
{
System.out.println("构造函数域块被执行一次");
i++;
} public static void main(String[] args){ C t1 = new C();
System.out.println("输出第一个i的值为:" + C.i);
C t2 = new C();
System.out.println("输出第二个i的值为:" + C.i);
}
}
运行结果
类方法
类方法中不能访问非静态变量
public class C {
public static void main(String[] args){
Student stu1 = new Student(18,"小红",580);
Student stu2 = new Student(18,"小黑",620);
System.out.println("有" + Student.p_total + "个学生");
System.out.println("学费总收入:" + Student.get_total_fee());
}
} //定义一个学生类
class Student{
public int age;
public String name;
public double fee; //学费
public static int p_total = 0;
public static double total_fee; //总学费 public Student(int age, String name, double fee)
{
p_total++;
this.age = age;
this.name = name;
this.total_fee += fee;
} //静态方法
//Java中规则:类变量原则上用类方法去访问
public static double get_total_fee()
{
return total_fee;
}
}
运行结果
JAVA类变量、类方法的更多相关文章
- Java Object类方法解析
Java Object类方法解析 在Java中Object是所有类的父类,任何类都默认继承Object,其提供的方法主要有以下几种: registerNatives() hashCode和equale ...
- JAVA类变量(静态变量)
类变量也称为静态变量,在类中以static关键字声明,但必须在方法.构造方法和语句块之外. -无论一个类创建了多少个对象,类只拥有类变量的一份拷贝. -静态变量除了被声明为常量外很少使用.常量是指声明 ...
- java里类方法和实例方法
实例方法相对于静态方法(或者叫类方法)而言没有 static 前缀类般方法被对象拥有(也称之实例方法原因)特点定义时候前面没有 static 前缀本类直接调用时候必须也实例方法内否则调用前必须先实例出 ...
- Java类变量和成员变量初始化过程
一.类的初始化 对于类的初始化:类的初始化一般只初始化一次,类的初始化主要是初始化静态成员变量. 类的编译决定了类的初始化过程. 编译器生成的class文件主要对定义在源文件中的类进行了如下的更改: ...
- 通过生产者消费者模式例子讲解Java基类方法wait、notify、notifyAll
wait(),notify()和notifyAll()都是Java基类java.lang.Object的方法. 通俗解释wait():在当前线程等待其它线程唤醒.notify(): 唤醒一个线程正在等 ...
- java 类变量的初始化
有代码如下:class Price{ final static Price INSTANCE = NEW Price(2.8); static double initPrice = 20; ...
- java反射操作类方法与属性
package com.fanshe.test; public class User { private int age; private String email; private String u ...
- Java Arrays类方法
1:概述 主要谈一谈 Java使用fork/koin类 实现的并发排序 以及对于Stream流的支持的splitetor mismatch() -> 寻找两个数组 第一次出现数据不一致的下 ...
- Java获取类方法上的注解
, fullName.indexOf("$$")); try { clz = Class.forName(fullName); } catch (ClassNotFoundExce ...
随机推荐
- oracle和mysql区别
1.本质的区别.oracle是对象关系数据库管理系统,简称ordbms.mysql是开源关系数据库关系系统,简称rdbms.Oracle是收费的.mysql是开源.免费的. 2.数据库安全性.myql ...
- Rancher2.x 一键式部署 Prometheus + Grafana 监控 Kubernetes 集群
目录 1.Prometheus & Grafana 介绍 2.环境.软件准备 3.Rancher 2.x 应用商店 4.一键式部署 Prometheus 5.验证 Prometheus + G ...
- POJ_1208_模拟
题目描述: 给定一个长度n,有0~n-1编号的箱子和位置,起始个编号的箱子放在相同编号的位置. 有一系列操作: move a onto b,将a,b上面的箱子放回初始位置,并将a放到b箱上. move ...
- centos7 手把手从零搭建深度学习环境 (以TensorFlow2.0为例)
目录 一. 搭建一套自己的深度学习平台 二. 安装系统 三. 安装NVIDA组件 四. 安装深度学习框架 TensorFlow 五. 配置远程访问 六. 验收 七. 福利(救命稻草
- PHP Ajax 跨域问题最佳解决方案 【摘自菜鸟教程】
PHP Ajax 跨域问题最佳解决方案 分类 编程技术 http://www.runoob.com/w3cnote/php-ajax-cross-border.html 本文通过设置Access-Co ...
- Andriod you must restart adb and eclipse
今天看着视频 学习着 andriod ,启动 的时候 竟然报错 我试了N种google来的方法,都失效,现在把我的解决方法告诉大家,希望能帮到大家. 首先,我先罗列下我搜到的方法,大家也可以尝试. 1 ...
- 四步搞定Zabbix 日志文件监控
Zabbix 日志文件监控 一.给运行Zabbix agent的用户授予要监控日志的读取权限. 1. 執行下面的命令,追加app的可讀權限: setfacl -m u:app:r-- /var/log ...
- Hapi+MySql项目实战数据库操作(四)
数据库访问 下面以Node的ORM框架Sequelize来操作数据库,Mysql为例. 配置数据库连接信息config/db_config.js: //db_config.js module.expo ...
- 数据算法 --hadoop/spark数据处理技巧 --(9.基于内容的电影推荐 10. 使用马尔科夫模型的智能邮件营销)
九.基于内容的电影推荐 在基于内容的推荐系统中,我们得到的关于内容的信息越多,算法就会越复杂(设计的变量更多),不过推荐也会更准确,更合理. 本次基于评分,提供一个3阶段的MR解决方案来实现电影推荐. ...
- linux 使用nfs 服务实现远程共享
首先安装 apt install -y nfs-kernel-server nfs-common 编辑配置文件 vim /etc/exports 添加内容: /root/test *(rw,sync, ...