Java超详细讲解类变量和类方法
作者:Demo龙 发布时间:2023-04-24 14:45:43
标签:Java,类变量,类方法
1.static静态变量
1.静态变量被同一个类的所有对象共享
2.static类变量在类加载的时候就生成使用
static保存在class实例的尾部,在堆中
3.和C语言C++有点像
package com.demo.static_;
import java.sql.SQLOutput;
public class childgeme {
public static void main(String[] args) {
Child ch01=new Child("牛牛牛");
ch01.join();
ch01.count++;
Child ch02=new Child("马马马");
ch02.join();
ch02.count++;
Child ch03=new Child("猪猪猪");
ch03.join();
ch03.count++;
System.out.println("共有"+Child.count+"个小孩加入了游戏");
System.out.println("ch01.count="+ch01.count);
System.out.println("ch02.count="+ch02.count);
System.out.println("ch03.count="+ch03.count);
}
}
class Child{
private String name;
//定义一个变量count,是一个类变量(静态变量)
public static int count=0;
public Child(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static int getCount() {
return count;
}
public static void setCount(int count) {
Child.count = count;
}
public void join(){
System.out.println(this.name+"加入了游戏");
}
}
2.类变量(静态变量的访问)
静态变量的访问权限和范围和普通属性是一样的
package com.demo.static_;
import java.sql.SQLOutput;
public class visit_Static {
public static void main(String[] args) {
//1.类名.类变量名
//static类变量在类加载的时候就生成使用
System.out.println("A.name="+A.name);
System.out.println("A.getAge()="+A.getAge());
//2.类对象.类变量名
A a=new A();
System.out.println("a.name="+a.name);
System.out.println("a.getAge()="+a.getAge());
}
}
class A{
//类变量
public static String name="Demo龙";
private static int age=99;
public static int getAge() {
return age;
}
public static void setAge(int age) {
A.age = age;
}
}
若类变量是private,则主函数中无法访问,需借助类函数访问
3.类方法
1.类方法也叫静态方法
2.访问修饰符+static+数据返回类型(){}
3.static+访问修饰符+数据返回类型(){}
4.调用方法和类方法相同
package com.demo.static_;
public class static_method {
public static void main(String[] args) {
stu a01=new stu("小虎");
//stu.sumfee();
a01.sumfee(150);
stu a02=new stu("小龙");
a02.sumfee(250);
//stu.sumfee();
stu a03=new stu("小猪");
stu.sumfee(199);
//输出当前收到的总学费
stu.showfee();
}
}
class stu{
private String name;//普通成员
//定义一个静态变量来累计学生的学费
private static double fee=0;
public stu(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//当方法使用了static修饰后,该方法就是静态方法
//静态方法就可以访问静态变量
public static double getFee() {
return fee;
}
public static void setFee(double fee) {
stu.fee = fee;
}
public static void sumfee(double fee){
stu.fee+=fee;
}
public static void showfee(){
System.out.println("总学费="+stu.fee);
}
}
detail
1.静态方法只能访问静态成员,this/super都不允许在类方法使用
2.非静态方法,可以访问静态成员和非静态成员
3.都遵守访问权限
来源:https://zal321.blog.csdn.net/article/details/124799200


猜你喜欢
- 引言因为写了不少 Spring Security 文章的缘故,所以总是有小伙伴来问松哥:按钮级别的权限怎么实现?甚至有一些看过 vhr 的小
- springboot天生支持使用hibernate validation对参数的优雅校验,如果不使用它,只能对参数挨个进行如下方式的手工校验
- 项目记录:1.图像原理通常图像都是2D,对一副图像,可以看做其宽w*高h的一个二维数组, 即 图像=int[w][h],在w和h位置的每一个
- 目录前言简单示例基础操作定时取消关联取消判断取消源码探究构造入手小插曲WaitHandle注册操作取消操作Cancel操作CancelAft
- 目录前言常量池反编译代码验证字符串初始化操作总结前言在深入学习字符串类之前,我们先搞懂JVM是怎样处理新生字符串的。当你知道字符串的初始化细
- WPF 使用 DrawingContext 绘制刻度条框架使用大于等于.NET40;Visual Studio 2022;项目使用 
- 定义:简单绑定是将一个用户界面元素(控件)的属性绑定到一个类型(对象)实例上的某个属性的方法。基本类型、包装类型、数组(以参数a
- 1、官网概括引用官网说法:The Java Virtual Machine defines various run-time data ar
- 第一种方法:string s=abcdeabcdeabcde;string[] sArray=s.Split(c) ;foreach(str
- 这篇文章主要介绍了Java向上转型和向下转型实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 目标了解HTTP 请求/响应头及常见的属性;了解如何使用SpringBoot处理头信息 ;了解如何使用SpringBoot处理Cookie
- 本文实例讲述了android编程实现悬浮窗体的方法。分享给大家供大家参考,具体如下:突然对悬浮窗体感兴趣,查资料做了个小Demo,效果是点击
- 一、常见问题所有的final修饰的字段都是编译期常量吗?如何理解private所修饰的方法是隐式的final?说说final类型的类如何拓展
- 在Java中我们知道静态变量会在类加载时机的“初始化”阶段得到赋值(编译器会收集类中的静态变量及静态
- 本文实例讲述了C#实现功能强大的中国农历日历操作类。分享给大家供大家参考。具体如下:这个C#类定义了中国农历日历,除了可以输入正常的日历外还
- 1、前言随着技术的发展,微信的一系列服务渗透进了我们的生活,但是我们应该怎样进行微信方面的开发呢。相信很多的小伙伴们都很渴望知道吧。这篇文章
- 本文实例讲述了C#实现简单的RSA非对称加密算法。分享给大家供大家参考,具体如下:界面控件namespace RSA算法{ pa
- 桥接模式概述桥接模式(Bridge Pattern)也称为桥梁模式、接口(Interfce)模式或柄体(Handle and Body)模式
- 从SD卡中获取图片资源,或者拍一张新的图片。 先贴代码 获取图片: 注释:拍照获取的话,可以指定图片的保存地址,在此不说明。 CharSeq
- 一、java多线程基本入门java多线程编程还是比较重要的,在实际业务开发中经常要遇到这个问题。 java多线程,传统创建线程的方式有两种。