📌 1. 解读
(1)main方法是虚拟机的调用
(2)java虚拟机需要调用类的main()方法,所以该方法的访问权限
必须是public
(3)java虚拟机在执行main()方法时不必创建对象
,所以该方法必须时static
(4)该方法接受Stri类型的数组参数,该数组中保存执行java命令时传递给所运行的类的参数
(5)java 执行的程序 参数1 参数 2 参数 3
📌 2. 注意事项
(1)在main()方法中,我们可以直接调用main方法所在类的静态方法或静态属性,main方法本身是静态方法
.
(2)但是,不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象象去访问类中的非静态成员。
📒初始代码
package codeblock;
public class CodeBlock {
}
//3个构造器
class Movie{
private String name;
private double price;
private String director;
public Movie(String name) {
System.out.println("电影屏幕打开...");
System.out.println("广告开始...");
System.out.println("电影正式开始...");
this.name = name;
}
public Movie(String name, double price) {
System.out.println("电影屏幕打开...");
System.out.println("广告开始...");
System.out.println("电影正式开始...");
this.name = name;
this.price = price;
}
public Movie(String name, double price, String director) {
System.out.println("电影屏幕打开...");
System.out.println("广告开始...");
System.out.println("电影正式开始...");
this.name = name;
this.price = price;
this.director = director;
}
}
(1)3个构造器;
(2)下面构造器都有相同的语句;
(3)代码看起来比较冗余;
(4)可以把相同的语句放在一个代码块中;
(5)当我们不管先调用哪个构造器,创建对象都会先调用代码块的内容;
(6)代码块调用顺序优先于构造器。
package codeblock;
public class CodeBlock {
public static void main(String[] args) {
Movie movie=new Movie("你好",39.9,"张艺谋");
}
}
class Movie{
private String name;
private double price;
private String director;
{
System.out.println("电影屏幕打开...");
System.out.println("广告开始...");
System.out.println("电影正式开始...");
}
public Movie(String name) {
System.out.println("Movie(String name)被调用...");
this.name = name;
}
public Movie(String name, double price) {
System.out.println("Movie(String name, double price)被调用...");
this.name = name;
this.price = price;
}
public Movie(String name, double price, String director) {
System.out.println("Movie(String name, double price, String director)被调用...");
this.name = name;
this.price = price;
this.director = director;
}
}
