课后作业2

一 ,  static 

静态方法(或称为类方法),指被 static 修饰的成员方法。

(一)静态方法,属于类,而不属于类的对象。
1)它通过类直接被调用,无需创建类的对象。
2)静态方法中,不能使用 this 关键字,也不能直接访问所属类的实例变量和实例方法;
3)静态方法中,可以直接访问所属类的静态变量和静态方法。
4)同this 关键字,super 关键字也与类的实例相关,静态方法中不能使用 super 关键字。

(二)语法格式:

访问权限 [static] 返回值类型 方法名(参数列表 ) { 语句… }

方法的返回值: return 表达式;

(三)static的特点:

1、随着类的加载而被加载;

2、优先于对象存在;

3、被所有对象共享;

4、可以通过类名调用。

(四)静态方法与静态变量好处:

1. 属于类级别,无需创建对象就即可直接使用,使用方便。

2. 全局唯一,内存中唯一,静态变量可以唯一标识某些状态。

3. 类加载时候初始化,常驻在内存,调用快捷方便。

静态方法与静态变量缺点:

1. 静态方法不能调用非静态的方法和变量。

2.不能使用this和super关键字。

静态方法与静态变量适用场景:

1. 静态方法,最适合工具类中方法的定义;比如文件操作,日期处理方法等。

2.静态方法,适合入口方法定义;比如单例模式,因从外部拿不到构造函数,所以定义一个静态的方法获取对象非常有必要。

3.静态变量适合全局变量的定义;举例:用一个布尔型静态成员变量做控制标志。

二 , 子方去掉static的原因

 1     public static void main(String[] args) {
 2         int result;
 3 
 4         for (int x = 1; x <= 10; x++) {
 5             result = square(x);
 6             // Math库中也提供了求平方数的方法
 7             // result=(int)Math.pow(x,2);
 8             System.out.println("The square of " + x + " is " + result + "\n");
 9         }
10     }
11 
12     // 自定义求平方数的静态方法
13     public   int square(int y) {
14         return y * y;
15     }

错误提示 : 

不能对非静态方法 square(int)进行静态引用 

原因:

静态成员不能直接访问非静态成员。

主函数是静态类型,只能访问静态类型的子方法

(三)Java的“方法重载

复制代码
 1  public static void main(String args[]) {
 2         System.out.println("The square of integer 7 is " + square(7));
 3         System.out.println("\nThe square of double 7.5 is " + square(7.5));
 4     }
 5 
 6     public static int square(int x) {
 7         return x * x;
 8     }
 9 
10     public static double square(double y) {
11         return y * y;
12     }
复制代码
The square of integer 7 is 49

The square of double 7.5 is 56.25
posted @ 2022-09-19 16:44  旺旺大菠萝  阅读(25)  评论(0编辑  收藏  举报