静态方法static(类方法)和 非静态方法(实例方法)的区别:

方法我们主要分为三种:
1.构造方法
2.静态方法(类方法)
3.非静态方法(普通方法/实例方法/成员方法)

对于1(补充一下):构造方法分为无参构造方法有参构造方法。另外
这两个方法,涉及到了方法重载(小伙伴可以自己去了解方法重载、方法重写、方法重构区别,当然我其他文章也会写相关的介绍)。

一、静态方法和非静态方法的区别(调用对象、引用变量不同)
对于2:静态方法,是使用static关键字修饰的方法,又叫类方法。属于类的,不属于对象,在实例化对象之前就可以通过类名.方法名调用静态方法。(静态属性,静态方法都是属于类的,可以直接通过类名调用)。
A.在静态方法中,可以调用静态方法。
B.在静态方法中,不能调用非静态方法。
C.在静态方法中,可以引用类变量(即,static修饰的变量)。
D.在静态方法中,不能引用成员变量(即,没有static修饰的变量)。
E.在静态方法中,不能使用super和this关键字

对于3:非静态方法,是不含有static关键字修饰的普通方法,又称为实例方法,成员方法。属于对象的,不属于类的。(成员属性,成员方法是属于对象的,必须通过new关键字创建对象后,再通过对象调用)。
A.在普通方法中,可以调用普通方法。
B.在普通方法中,可以调用静态方法
C.在普通方法中,可以引用类变量和成员变量
D.在普通方法中,可以使用super和this关键字

二、静态方法和非静态方法的区别(调用方法不同)
静态方法可以直接调用,类名调用和对象调用。(类名.方法名 / 对象名.方法名)
但是非静态方法只能通过对象调用。(对象名.方法名)

三、静态方法和非静态方法的区别(生命周期不同)
静态方法的生命周期跟相应的类一样长,静态方法和静态变量会随着类的定义而被分配和装载入内存中。一直到线程结束,静态方法和静态属性才会被销毁。(也就是静态方法属于类)
非静态方法的生命周期和类的实例化对象一样长,只有当类实例化了一个对象,非静态方法才会被创建,而当这个对象被销毁时,非静态方法也马上被销毁。(也就是非静态方法属于对象)

总结:类方法可以直接通过类名调用;实例方法必需先实例化类,再初始化对象,然后通过类的实例对象才能调用

举例

class ABC{

 public static void testStatic(){System.out.println("This is static method");}public void testMethod(){System.out.println("This is instance method");}public static void main(String[] str){ABC.testStatic();         //直接通过类调用ABC a = new ABC();        //实例化,然后构造方法会初始化a.testMethod();           //对象调用方法
}

}

静态方法和非静态方法区别?相关推荐

  1. C#中静态方法和非静态方法的区别

    静态方法和非静态方法的区别: 1.静态方法不需要类实例化就可以调用,反之非静态方法需要实例化后才能调用: 2.静态方法只能访问静态成员和方法,非静态方法都可以访问: 3.静态方法不能标记为overri ...

  2. php 静态方法特点,浅析php静态方法与非静态方法的用法区别

    在php编程中,static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为"类属性"或"类方法" 如果访问控制 ...

  3. java静态方法和非静态方法的区别_史上最全阿里 Java 面试题总结

    关注[ToBeTopJavaer],回复[答案],获取全套面试题答案,为明年的金三银四,做好充分的准备. JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节. String类能被继承吗 ...

  4. java中静态方法与非静态方法的区别及非静态方法的注意事项

    一旦使用static修饰成员方法,那么这就成为了静态方法.静态方法不属于对象,而是属于类的. 如果没有static关键字,那么必须首先创建对象,然后通过对象才能使用它. 如果有了static关键字,那 ...

  5. 静态方法与非静态方法区别

    一.静态方法 静态方法又称类方法,是加staic关键字修饰的方法,在类定义的时候就被分配和装载入内存中. 静态方法属于类所有,类实例化前即可使用,同时不能使用super和this关键字. 静态方法只能 ...

  6. 静态方法和非静态方法的区别JAVA

    最近在写JAVA程序的时候报了一个错. No enclosing instance of type FileRead is accessible. Must qualify the allocatio ...

  7. java中synchronized修饰静态方法和非静态方法有什么区别?

    Synchronized修饰非静态方法 Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称"对象锁". Java中每个对象都有一个锁,并且是唯一的.假设分 ...

  8. 使用synchronized修饰静态方法和非静态方法有什么区别

    前言 最近被问到了这个问题,第一次回答的也是很不好,在此参考网上答案进行整理记录.供大家学习参考. Synchronized修饰非静态方法 Synchronized修饰非静态方法,实际上是对调用该方法 ...

  9. 静态方法与非静态方法的区别

    使用static修饰的静态方法是属于整个类的类方法,它在内存中的代码段会随类的定义而被分配和装载:而非静态方法是属于具体对象的方法,当这个对 象创建时,在对象的内存中会拥有此方法的专用代码段.在引用静 ...

最新文章

  1. base64 长度补全
  2. THANATOS数据库(自噬调节相关蛋白及其翻译后修饰信息数据库)使用指南
  3. Nginx 内置绑定变量的介绍
  4. java生产者消费者代码_Java实现Kafka生产者消费者代码实例
  5. 程序员界年度人口普查:6成以上开发者日工作超9小时,且从不运动
  6. ECMAScript6 ES6语法
  7. cassandra学习笔记三
  8. 1005 继续(3n+1)猜想 (25 分)—PAT (Basic Level) Practice (中文)
  9. 【开源系列】三国演义LBS (二)游戏策划案
  10. 根据IP地址查询物理位置(IP地址定位库)并且查询当前地址的天气信息(中国气象网)
  11. 交通标志识别系统(TSR)
  12. python爬虫requests设置代理ip_Python爬虫技巧-设置代理IP
  13. 希捷硬盘固件修复工具_希捷3.5寸500G台式机硬盘磁头损坏后的数据恢复
  14. 带管理职位面试中遇到的常见经典问题的回答
  15. 计算机网络和智能家居,智能家居与传统智能家居到底有什么区别
  16. POI使用详解 java 复杂excel导出(笔记)
  17. 给大家分享一篇 用Python抓取漫画并制作mobi格式电子书
  18. beeline : Error: Could not open client transport with JDBC 连接失败
  19. 设计并测试一个椭圆类
  20. 二手电脑与Ubuntu的经历-2-显卡知识

热门文章

  1. 主数据管理(MDM)如何打通企业奇经八脉?
  2. Oracle 12C ORA-01017/ORA-28040问题总结
  3. c语言insert作用,C++string中的insert()插入函数详解
  4. 计算机组成原理VHDL语言实现16位ALU实验
  5. 详细介绍Deeper Text Understanding for IR with Contextual Neural Language Modeling
  6. 2D激光SLAM-基于PL-ICP的激光雷达里程计
  7. 吴忠军 - 项羽30万大军挖不动秦始皇陵!秦陵难解之谜
  8. 龟兔赛跑问题(并发)
  9. 无法连接局域网中的sqlserver数据库
  10. 0-7对应星期一到星期日