首页 > 其他分享 >实例方法和静态方法:假设类A有如下定义,且a是A类的一个实例,则必定错误的选项是(C)。

实例方法和静态方法:假设类A有如下定义,且a是A类的一个实例,则必定错误的选项是(C)。

时间:2024-06-20 23:54:47浏览次数:23  
标签:选项 调用 静态方法 int 实例 static public

题目

假设类A有如下定义,且a是A类的一个实例,则必定错误的选项是(C)。

class A {

int i;

static String s;

void method1() { }

static void method2() { }

}

A. System.out.println(a.i);

B. a.method1();

C. A.method1();

D. A.method2() ;

解析:A、B、D正确,C错误

public class Main {
    public static void main(String[] args) {
        A a = new A(5, "s");  //创建类 A 的实例 a
        System.out.println(a.i);  //正常编译,因为 i 是 A 类的一个实例变量(非静态),并且可以通过 A类的一个实例(如 a)来访问。
        a.method1();  //正常编译,method1()是一个实例方法,它可以通过 A 类的一个实例(如 a)来调用。
        A.method1();  //代码报错,method1()是一个实例方法,它不能通过类名(如 A)直接调用。实例方法需要通过类的实例来调用。
        A.method2();  //method2()是一个静态方法(由 static关键字标识),它可以通过类名(如 A)直接调用,而不需要类的实例。
    }
}
​
class A {
    int i;
    static String s;
    //构造函数
    public A(int i, String s) {
        this.i = i;
        this.s = s;
    }
    //非静态方法(实例方法)
    void method1() {
    }
    //静态方法
    static void method2() {
    }
}
​

以下是一些关于Java类的实例方法(非静态方法)和静态方法的例子:

例子1:实例方法

public class Main {
    public static void main(String[] args) {
        // 创建Car的实例
        Car myCar = new Car("Toyota", 2023);
        // 调用实例方法
        myCar.startEngine(); // 输出:Car Toyota started.
        System.out.println("Year: " + myCar.getYear()); // 输出:Year: 2023
        // 尝试通过类名调用实例方法会编译错误
        Car.startEngine(); // 错误:不能这样调用非静态方法
    }
}
​
class Car {
    private String model;
    private int year;
    // 构造函数
    public Car(String model, int year) {
        this.model = model;
        this.year = year;
    }
    // 非静态方法(实例方法)
    public void startEngine() {
        System.out.println("Car " + model + " started.");
    }
    // 获取年份的实例方法
    public int getYear() {
        return year;
    }
}

例子2:静态方法

public class MathUtils {  
      
    // 静态方法,用于计算两个数的和  
    public static int add(int a, int b) {  
        return a + b;  
    }  
  
    public static void main(String[] args) {  
        // 调用静态方法  
        int sum = MathUtils.add(5, 3);  
        System.out.println("Sum: " + sum); // 输出:Sum: 8  
  
        // 尝试通过实例调用静态方法虽然可以工作,但通常不推荐这样做  
        // 因为静态方法与类的实例无关  
        // MathUtils mathUtils = new MathUtils(); // 实际上不需要创建MathUtils的实例  
        // int anotherSum = mathUtils.add(2, 2); // 这会工作,但不建议这样做  
  
        // 直接通过类名调用静态方法  
        int anotherSum = MathUtils.add(2, 2);  
        System.out.println("Another Sum: " + anotherSum); // 输出:Another Sum: 4  
    }  
}

总结

  • 实例方法(非静态方法):需要通过类的实例来调用。它们可以访问实例变量(非静态变量)和其他实例方法。

  • 静态方法:可以通过类名直接调用,而不需要创建类的实例。它们只能访问静态变量和静态方法。由于静态方法与类的实例无关,因此它们不能访问实例变量(非静态变量)或实例方法(非静态方法),除非通过某个类的实例来引用。在Java中,main 方法就是一个静态方法,因为它是程序的入口点,不需要创建任何类的实例就可以直接调用。

标签:选项,调用,静态方法,int,实例,static,public
From: https://www.cnblogs.com/joiny-/p/18259698

相关文章

  • [机器视觉]halcon应用实例 用户自定义多ROI模板匹配
    本示在前面几个halconROI示例的基础上继续扩展,更靠进实标情况。为了使ROI匹配更灵活,就要求可以让用户或工程根据实际使用情况自己去画ROI,想画几个是几个。数量不能在代码里写死。这次升级的主要是增加了一个while循环根据用户的鼠标按键来进行判断是否继续画,还是退出画ROI。效......
  • [机器视觉]halcon应用实例 边缘检测
    一个学习找边的实例边缘检测的步骤图解步骤1.通过Blob方法获取需要测量的Region1.1主要运用图像形态学、二值化2.创建测量句柄2.1create_metrology_model(MetrologyHandle)3.设置目标图像大小......
  • Linux kernel版本升级实例
    内核版本漏洞           内核离线升级     https://elrepo.org/linux/kernel/el7/x86_64/RPMS/    1.下载内核相关的rpm包            2.安装内核源        rpm-ihvkernel*--nodeps--force  ......
  • Vue30_实例2
    目标:了解Vue实例生命周期,生命周期的钩子函数及created函数常用场景分析:在创建vue实例的时候可以制定模板id、数据和方法;而如果要在实例化、模板渲染的过程中需要执行一些其它操作的话,那么可以使用钩子函数。一、创建Vue实例每个Vue应用都是通过用Vue函数创建一个新的Vue......
  • JDBC实例:执行遍历查询操作,并打印查询结果
     //导入了Java的SQL包importjava.sql.*;publicclassMain{publicstaticvoidmain(String[]args)throwsException{//注册MySQL的JDBC驱动Class.forName("com.mysql.jdbc.Driver");//连接自己的数据库,我连接了数据库“pinta”St......
  • 管理 MySQL Shell 配置选项
    与任何工具一样,MySQLShell的开箱即用配置可能无法满足每个用户在任何情况下的需求。我们需要一种方法来轻松查看、更新和持续(如有必要)更改默认配置。有一条命令可以帮助我们管理MySQLShell配置。这条命令就是\option。 查看帮助MySQLlocalhostJS>\optionNAME......
  • python队列实例解析
    一队列的概念1创建队列:importqueueq=queue.Queue()#创建Queue队列 2入队和出队foriinrange(3):q.put(i)#在队列中依次插入0、1、2元素foriinrange(3):print(q.get())#依次从队列中取出插入的元素,数据元素输出顺序为2、1、0......
  • 通过阿里云OOS定时升级EIP实例临时带宽
    功能背景随着业务的不断发展和互联网应用场景的多样化,企业或个人用户在特定时间段内面临网络流量剧增的挑战变得尤为常见。这些流量高峰,如大规模促销活动、热门直播事件、重大新闻发布或季节性数据备份等场景,往往会导致原有带宽瞬间饱和,影响用户体验甚至导致服务短暂不可用。......
  • 初学51单片机之PWM实例呼吸灯以及遇到的问题(已解答)
    PWM全名PulseWidthModulation中文称呼脉冲宽度调制如图这是一个周期10ms、频率是100HZ的波形,但是每个周期内,高低电平宽度各不相同,这就是PWM的本质。占空比是指高电平占整个周期的比列,上图第一个波形的占空比是40%,第二个是60%,第三个是80%。本案将以PWM控制来制作一个呼......
  • 函数模板与类模板深入解析及实例
    目录函数模板类模板类模板成员函数的实例化类模板的静态成员全局特化与成员特化缺省模板参数与数值形式的模板参数结论 函数模板函数模板允许我们编写适用于多种数据类型的通用函数。以下是函数模板的定义和使用示例:template<typenameT>Tmax(Ta,Tb){......