更新时间:2020-09-29 来源:黑马程序员 浏览量:
(1)问题分析:
考官主要相对static方法的考察,涉及到static关键词考核,如抽象的(abstract)方法是否可同时是静态的(static);static
可否用来修饰局部变量; 内部类与静态内部类的区别;java中是否可以覆盖(override) 一个private或者是static的方法。
(2)核心答案讲解:
不可以。static方法是静态方法,是属于类的方法,非static方法是属于对象的方法。因为非static方法是要与对象关联在一起的,必须在创建出一个对象后,才可以通过这个对象调用非static方法;而static方法可以直接通过类名来调用,不需要创建对象。也就是说,在一个static方法被调用时,还可能没有创建任何实例对象,此时如果从static内部发出对非static方法的调用,非static方法是无法关联到对象的。
(3)问题扩展:
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块。
static修饰的变量习惯称为静态变量,static修饰的方法称为静态方法,static修饰的代码块叫做静态代码块。
static的意义在于方便在没有创建对象的情况下来进行调用(方法/变量)。
“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。
(4)结合项目中使用:
1)在项目中,很多工具类会使用static定义方法 ,达到不用new对象直接类名.方法名直接调用,使用工具更方便,减少重复代码的作用。例如:项目中的UUIDUtils
2)常见的单例模式
单例模式方法定义为静态方法:达到不能用该类在其他地方创建对象,而是通过该类自身提供的方法访问类中的那个自定义对象的目的。
猜你喜
java访问级别介绍: private,protected,public和default的区别
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19