深入理解 java main 方法

main 方法的语法说明

public static void main(String[] args){}

  • main 方法由虚拟机调用,而 java 虚拟机需要调用类的 main() 方法,而虚拟机和 main 方法不在同一个包下,所以 main 方法必须是 public
  • java 虚拟机在执行 main 方法时不必创建对象,所以该方法必须是 static
  • main 方法接收 String 类型的数组参数,该数组中保存执行 java 命令时传递给所运行的类的参数
  • args 参数传递的时机:在 java 执行程序的时候(在控制台执行 javac 编译程序,在执行命令 java 类名 参数1 参数2 参数3... 可以传递参数)
  • 在 main 方法中,可以直接调用 main 方法所在类的静态方法或静态属性。但是不能直接访问该类中的非静态成员,必须创建一个该类的对象实例后,再通过该对象实例去访问类中的非静态成员
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
模板方法模式是一种行为设计模式,它定义了一个算法的骨架,允许子类为一个或多个步骤提供实现。模板方法模式的核心思想是:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 在Java中,模板方法模式通常由一个抽象类来实现,该抽象类定义了一个模板方法,该方法包含了一系列调用其他方法的步骤,这些方法可以是抽象的,也可以是具体的。子类通过继承该抽象类,并重写其中的抽象方法来实现自己的具体业务逻辑。 下面是一个使用模板方法模式的Java示例代码: ```java // 抽象类,定义了一个模板方法和若干抽象方法 public abstract class AbstractClass { // 模板方法,定义了算法的骨架 public void templateMethod() { // 调用抽象方法 doSomething(); // 调用具体方法 doAnything(); } // 抽象方法,由子类实现 public abstract void doSomething(); // 具体方法,由抽象类实现 public void doAnything() { // 具体实现 } } // 具体子类,实现抽象方法 public class ConcreteClass extends AbstractClass { @Override public void doSomething() { // 具体实现 } } // 客户端代码 public class Client { public static void main(String[] args) { AbstractClass ac = new ConcreteClass(); ac.templateMethod(); } } ``` 在上面的示例代码中,抽象类`AbstractClass`定义了一个模板方法`templateMethod()`,该方法包含了两个步骤:调用抽象方法`doSomething()`和具体方法`doAnything()`。子类`ConcreteClass`继承了抽象类,并实现了抽象方法`doSomething()`。客户端代码通过实例化`ConcreteClass`并调用其`templateMethod()`方法来运行整个算法。 需要注意的是,模板方法模式中的算法骨架通常是不变的,而具体的实现可以有多种选择,因此模板方法模式也被称为“框架模式”。该模式具有以下优点: - 封装不变部分,扩展可变部分。模板方法模式通过将算法骨架封装在抽象类中,将具体实现延迟到子类中,实现了代码的复用和扩展。 - 提取公共部分代码,便于维护。模板方法模式将相同部分的代码放在抽象类中,便于统一管理和维护。 - 行为由父类控制,子类实现。模板方法模式通过抽象方法和具体方法的组合,实现了行为的分离,父类控制了算法骨架,子类实现了具体的步骤。 总之,模板方法模式是一种非常实用的设计模式,可以在保持算法整体结构不变的情况下,灵活地扩展和修改算法的具体实现,具有很高的代码复用性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值