首页 > 其他分享 >类和对象(四)

类和对象(四)

时间:2023-09-22 22:01:31浏览次数:27  
标签:静态方法 Cust 对象 静态 static public name

静态变量和静态方法

今日份学习:静态变量和静态方法。

由static修饰的变量和方法被称为静态变量和静态方法。

被声明为static的变量和方法被称为静态成员。静态成员属于类所有,区别于个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员。

【例】创建并调用静态属性和静态变量

public class StaticDemo {

static double Pl=3.1415;


public static void method() {

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

}


public static void main(String[] args) {

System.out.println(StaticDemo.Pl);

StaticDemo.method();



}


}

结果为:

类和对象(四)_静态成员


(虽然静态成员也可以使用“对象.静态成员”的形式进行调用,但通常不建议用这样的形式,因为这样容易混淆静态成员和非静态成员。)

静态变量与静态使用方法的作用通常是为了提供共享数据或方法。尽管使用这种方式调用静态成员比较方便,但静态成员同样遵循着public, private和protected修饰符的约束。

如果在执行类时,希望先执行类的初始化动作,可以使用static定义一个静态区域,这块区域被称为静态代码块。当类文件被执行时,会首先执行static块中的程序,并且只会执行一次。静态代码块的语法如下:

Public class example{

static{

… //可以在这里写初始化的代码

}

}


(在静态方法中不可以使用this关键字。

在静态方法中不可以直接调用非静态方法。

局部变量不可以使用static关键字声明。

主方法必须用static声明。

只有内部类可以使用static关键字声明。)


【例】统计顾客总人数


public class Cust {

static int count=0;

String name;

public Cust(String name) {

this.name=name;

count++;

}


public static void main(String[] args) {

Cust c1=new Cust("李一");

System.out.println("我是第"+Cust.count+"名顾客,我叫"+c1.name);

Cust c2=new Cust("李二");

System.out.println("我是第"+Cust.count+"名顾客,我叫"+c2.name);

Cust c3=new Cust("李三");

System.out.println("我是第"+Cust.count+"名顾客,我叫"+c3.name);

Cust c4=new Cust("李四");

System.out.println("我是第"+Cust.count+"名顾客,我叫"+c4.name);


}


}

结果如下:

类和对象(四)_静态方法_02


标签:静态方法,Cust,对象,静态,static,public,name
From: https://blog.51cto.com/u_15966010/7572361

相关文章

  • promise对象的三种状态
    Promise对象只有三种状态。异步操作“未完成”(pending)异步操作“已完成”(resolved,又称fulfilled)异步操作“失败”(rejected)settled叫做已决议,不是Promise三种状态. ......
  • python+playwright 学习-82 Request 对象
    前言每当页面发送网络资源请求时,页面都会发出以下事件序列:page.on("request")当页面发出请求时触发page.on("response")接收到请求的响应状态和标头时触发page.on("requestfinished")当响应主体被下载并且请求完成时发出。如果请求在某个时刻失败,则会发出page.on("requ......
  • 使用Object.defineProperty() 定义对象属性时,如已设置 set 或 get, 就不能设置 writab
    使用Object.defineProperty()定义对象属性时,如已设置set或get,就不能设置writable和value中的任何一个了,不然会报如下错误。TypeError:Invalidpropertydescriptor.Cannotbothspecifyaccessorsandavalueorwritableattribute,#<Object>  letobj_tes......
  • SyntaxError: invalid property id (浏览器不支持对象...展开)
    SyntaxError:invalidpropertyid(浏览器不支持对象...展开)火狐55以后支持......
  • Windows和Linux中的库、对象、可执行文件后缀名
    中国软件工程师面试常问的问题Justa"Scientific"(Interview)ExplanationforInterviewProblemsforSoftwareEngineers(mostChineseInterviews)Windows和Linux中的库、对象、可执行文件后缀名library,object,executablefilessuffixnameinWindowsandLinuxL......
  • JAVA基础 —— 面向对象内存图
    JAVA基础——面向对象内存图......
  • java语言基础--对象内存图解
    在JVM内存里面主要分布有以下三个区域:栈:存放基础数据和自定义对象的引用堆:主要存储创建的对象,即new出来的对象。方法区:加载存放class文件(字节码文件)创建一个对象: 通过上图来看,程序是这样执行的:将StudentTest01.class文件加载到方法区将Student.class文件加载到方法区......
  • JAVA基础学习——面型对象进阶
    1static2继承   1static1.1内存图静态对象是随着类加载,非静态对象随着对象来的: 引用类型初始化时null值。 1.2static静态变量、静态方法 1.3总结  ①静态方法中没有this,非静态方法中有静态的一般用于共享,不面向某一个对象,所以没有this;而非......
  • 类与对象(三)
    类今日份学习:局部变量及其有效范围,this关键字和类的构造方法。局部变量定义:如果在成员方法内定义一个变量,那么这个变量被称为局部变量。  局部变量是在方法被执行是创建,在方法被执行结束时被销毁。局部变量在使用时必须进行赋值操作或者初始化,否则会出现编译错误。局部变量的......
  • 基于Java面向对象思想对个人项目的深度分析
    基于Java面向对象思想对个人项目的深度分析一、摘要本文站在java面向对象思想的角度,深入研究了GJH同学Java中小学数学卷子自动生成程序的工程代码。通过对核心类、继承与多态、封装与解耦等面向对象思想和生成题目算法进行了深度分析,全面探讨了系统的优缺点与改进空间。关键字:j......