首页 > 其他分享 >Day17.1:静态与非静态的详解

Day17.1:静态与非静态的详解

时间:2022-11-20 23:13:13浏览次数:46  
标签:调用 静态方法 静态 void Day17.1 详解 static public 加载

静态与非静态

  • 静态方法——类方法

是以static为关键词,从属于类,与类共生

public class Students{//class修饰的是一个类,所以这是一个学生类

    public static void say(){//方法前加static修饰,则是静态方法,在其他类中可以直接调用
        System.out.println()
    }
}//在下面的类中直接调用
public class Demo{
    public static void main(String() args){
        Students.say();//调用上方中类的方法;因为是静态方法;直接类名.方法即可;
        //只要一个类的方法是静态方法,不管这个类是是否在本类中,调用静态方法时,通过类名.方法即可调用!
    }
}
  • 非静态方法——实例方法,成员方法

对象专用方法,与对象共生

public class Students

    public void say(){//方法前没有static修饰,则是非静态方法,在其他类中可以不能直接调用!不能直接调用!不能直接调用!
        System.out.println()
    }
}//在下面的类中进行调用
public class Demo{
    public static void main(String() args){
        //若果要调用类的非静态方法,则需要将类实例化,即以类为模板,建立一个单独的对象;实例化就是创造对象
        //上面为学生类,我们新建立一个学生,则该学生享有类(模板)的属性和方法
        Students xiaoMing=new Students();//我们以学生类创造了一个学生;那么这个学生则是学生类型,将他命名为xiaoMing;
        xiaoMing.say();//我们创造的xiaoMing享有模板的一切属性和方法;所以可以通过对象名.方法
        
    }
}//非静态方法为对象专属,只能通过对象调用
  • 静态方法与非静态方法之间的调用关系

在同一类中:

静态方法之间可以直接调用、不可以直接调用非静态方法

非静态方法之间可以直接调用、可以直接调用静态方法

静态方法A 非静态方法A
静态方法B 是否可以被直接调用 可以 可以
非静态方法B 是否可以被直接调用 不可以 可以
  1. 为什么在同一类中静态方法可以直接互相调用呢?

静态方法与类一起加载,两者可以直接相互调用。

  1. 为什么在同一类中静态方法不可以直接调用非静态方法呢?

静态方法与类一起加载,而非静态方法只能通过对象建立后才能加载,等于说已经加载的方法不能调用还没有加载的方法,所以不能直接使用。

  1. 为什么同一类中非静态方法之间可以直接调用?

因为两个非静态方法在对象建立后被同时加载,所以可以直接调用。

public class Demo{
    public static void main(String[] args){
        
    }
    public static void a(){
    //a为静态方法,与Demo类同时加载,而下方b方法并未加载,b需要Demo实例化后,即创造一个对象后才能加载
    //所以a不能调用b
    }
    public void b(){
        
    }
}
public class Demo{
    public static void main(String[] args){
        
    }
    public void a(){
    //a和b为两个非静态方法,在加载时没有时间差,可以互相调用,对象建立,两个方法同时加载
    }
    public void b(){
        
    }
}

标签:调用,静态方法,静态,void,Day17.1,详解,static,public,加载
From: https://www.cnblogs.com/CQliuwei/p/16909995.html

相关文章

  • Eclipse集成PC-Lint静态检查工具
    Linticator插件Linticator插件将PC-Lint集成到Eclipse,但不是免费的,不过有30天试用期,安装之前首先去​​linticator.com​​注册一个账号,没有账号无法安装。注册成功......
  • vs+qt静态编译环境配置
    一、简述Qt官方提供二进制安装包+vs开发环境默认只能通过动态编译。可以通过Qt提供工具Windeployqt把相关qt依赖dll复制到当前目录(但是会有windows系统提供dll不能关联,所以......
  • (转)Linux crontab命令详解
    原文:https://www.cnblogs.com/ftl1012/p/crontab.htmlcrontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本 -->相当于闹钟       日志文件: ll/var/lo......
  • java注解详解以及如何获取注解的上的信息
    目录一、Java自定义注解详解1.定义注解:2.元注解介绍@Target详细介绍@Relation详细介绍@Documented介绍@Inherited介绍3.注解可用的类型4.默认值限制5.创建一个简单的自定义......
  • 图文详解在VMware Workstation 16 PRO虚拟机上安装Ubuntu 22.04.5 linux系统
    一、下载Ubuntulinux系统镜像机构下载地址官网地址https://cn.ubuntu.com/download南京大学https://mirrors.nju.edu.cn/ubuntu-releases/20.04.5/山东......
  • 图文详解在VMware Workstation 16 PRO虚拟机上安装Rocky 8.6 linux系统
    一、安装VMwareWorkstation虚拟机下载VMwareWorkstation16PRO虚拟机https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html,下载后安......
  • Pikachu XSS关卡详解
    Backgroundpakachu这个靶场可以做很多web题目在这里着重帮助大家解决xss项目环境系统:Windows11本地服务器:PHPstudy2018靶场:pikachu1.反射型xss(get)在这里随便输......
  • Mysql数据库引擎MYISAM和INNODB详解
    一、数据库​​引擎​​数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程......
  • Android 详解广播机制
    Android详解广播机制广播的种类静态广播和动态广播接受系统广播extendsBroadcastReceiver{}onReceive(Contextcontext,Intentintent)onReceive方法中用来处......
  • java -Xms -Xmx -XX:PermSize -XX:MaxPermSize-详解
         在做java开发时尤其是大型软件开发时经常会遇到内存溢出的问题,比如说OutOfMemoryError等。这是个让开发人员很痛苦、也很纠结的问题,因为我们有时不知道什么样的......