首页 > 编程语言 >Java基础

Java基础

时间:2023-02-24 19:57:03浏览次数:37  
标签:Java 静态 Car 成员 基础 对象 Animal public

多态?

假设我们有一个Animal类,其中包含一个makeSound()方法。现在我们可以创建多个子类,如Dog和Cat,它们可以继承Animal类并覆盖makeSound()方法,以产生不同的声音。

public class Animal {
    public void makeSound() {
        System.out.println("Animal is making a sound");
    }
}

public class Dog extends Animal {
    public void makeSound() {
        System.out.println("Dog is barking");
    }
}

public class Cat extends Animal {
    public void makeSound() {
        System.out.println("Cat is meowing");
    }
}

 

static的作用

在 Java 中,static 是一个关键字,用于修饰类的成员变量和成员方法。static 成员被称为静态成员,它具有以下特点:

  1. 静态成员属于类,而不是属于类的实例对象。也就是说,不需要创建类的实例对象,就可以直接使用静态成员。

  2. 静态成员可以被类的所有实例对象共享,而不是每个实例对象都拥有一份自己的成员。因此,修改静态成员会影响到所有使用该静态成员的对象。

静态成员的使用场景包括:

  1. 记录所有实例共享的状态。例如,在一个多线程的程序中,可以使用静态成员来记录所有实例共享的计数器。

  2. 为了提高性能,避免重复计算。例如,在一个数学类中,可以使用静态成员保存一些常用的数值,避免每次计算都重新生成。

  3. 将方法和数据进行组织和分类。例如,在一个工具类中,可以使用静态方法来提供一些常用的工具方法,而不需要创建该工具类的实例对象。

举个例子来说明,假设有一个 Car 类,它有一个静态成员变量 count,记录了所有 Car 对象的数量。当创建 Car 对象时,可以在构造函数中增加 count 的值,以统计所有对象的数量:

public class Car {
    private static int count = 0;
    private String brand;
    
    public Car(String brand) {
        this.brand = brand;
        count++;
    }
    
    public static int getCount() {
        return count;
    }
}

 

这样,就可以在不需要创建 Car 对象的情况下,通过 Car.getCount() 方法来获取所有 Car 对象的数量。

标签:Java,静态,Car,成员,基础,对象,Animal,public
From: https://www.cnblogs.com/blessings/p/17152934.html

相关文章

  • java 中清理所有特殊字符
    publicstaticStringfilter(Stringstr)throwsPatternSyntaxException{//清除掉所有特殊字符StringregEx="[`_《》!@#$%^&*()+=|{}':;',\[\].<>?!@#¥%……&*()——+......
  • Java学习之异常
    异常exception一般需要程序员管理的异常可以分为两类:Exception(大类):Runnable异常及其子类其他异常运行时异常:RuntimeException及其子类,编译时不会出现异常,运行......
  • 代码随想录算法Day24 | 回溯算法理论基础,77.组合
    回溯算法理论基础回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯法通常使用递归来实现,在递归过程中不断尝试各种可能的解决方案,如果发现当前的解决方案不可行,就回溯......
  • #Python基础 DateFrame 查看数据信息
    一:导入案例数据及X-MIND 二:实例 2.1显示摘要信息  2.2显示描述性统计信息   2.3显示前后n行  2.4显示索引、列信息  2.5显示每列的数据类......
  • 【JavaScript】27_浅拷贝和深拷贝 + 对象的复制
    7、浅拷贝和深拷贝浅拷贝(shallowcopy)通常对对象的拷贝都是浅拷贝浅拷贝顾名思义,只对对象的浅层进行复制(只复制一层)如果对象中存储的数据是原始值,那么拷贝的深浅是不重要浅......
  • 【JavaScript】28_数组的常用方法
    9、数组的方法push()向数组的末尾添加一个或多个元素,并返回新的长度pop()删除并返回数组的最后一个元素unshift()向数组的开头添加一个或多个元素,并返回新的长度shift()删......
  • java代码上传文件,接口consumes = "multipart/*",headers = "content-type=multipart/f
    publicstaticStringdoPost(Stringurl,StringfileName,Filefile){CloseableHttpClienthttpClient=null;CloseableHttpResponseresponse=null;Str......
  • java代码转发文件流,前端下载文件流
    后端文件流转发代码publicstaticvoiddoGetFile(HttpServletResponsehttpResponse,Stringurl){CloseableHttpClienthttpClient=null;CloseableH......
  • java 反射
    总结一句话就是:在程序运行中根据业务需要由jvm动态获取Class对象来创建对象、执行方法等操作。是动态和灵活的而不是事先代码写死获取Class三种方法:类.class;对象.g......
  • java int 引用传递
    integer是final,不可变的,所以也无法实现引用传递的功能。解决方案int[]做一个包装类org.apache.commons.lang.mutable.MutableIntjava.util.concurrent.atomic.Atomi......