JAVA核心技术I---JAVA基础知识(函数)

时间:2021-10-01 20:01:19

一:自定义函数

由于JAVA中都是由类组成,所以想实现类似于函数的功能,直接使用main主函数进行调用,就需要使用静态类方法,直接调用,而不需要实例对象
public class HelloWorld {
    public static int a=15;    //成员变量
    
    public static int func(int b) {    //成员方法
        a+=b;
        return a;
    }
    
    public static void main(String[] args) {
        int b=13;
        b=func(b);  //或者HelloWorld.func(b)
        System.out.println(b);     //28
        
        TestFunc.say();
        
    }
}

//public class TestFunc出现两个public在同一个java文件中是错误的
class TestFunc{  //默认是default类型 public static void say() {
        System.out.println("I come from TestFunc");
    }
}
1.函数必须放在类的范围内• 修饰词(public 或者 static) 返回值(int 或者void),函数名(形参列表) {函数体}
2.通常情况下,我们都建议方法是public。
3.函数可以调用其他的函数,例如上例中,main函数调用了add函数。
4.递归函数调用,需要注意终止性。
5.同一个类中,函数名称可以相同,即重载函数(overload),但是函数参数的个数或者类型必须有所不同
6.不能以返回值来区分同名的函数
public class HelloWorld {
    public static int a=15;    //成员变量
    
    public static int func(int b) {    //成员方法
        a+=b;
        return a;
    }
    
    public static void func() {    //成员方法  //重载,主要区别是传参不同,函数名一致
        System.out.println("overwrite");
    }
    
    public static void main(String[] args) {
        int b=13;
        b=HelloWorld.func(b);
        System.out.println(b);     //28
        HelloWorld.func(); //overwrite
        TestFunc.say();
    }
}

二:补充类的类型

默认的是default 不需要书写

public:

Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。

private: 

Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。

protect: 

介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。

default:(不同于C++的地方)

即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。

三:作业

请实现程序输出以下5*5数字方格。

1   2   3   4   5

6   7   8   9   10

11  12  13  14  15

16  17  18  19  20

21  22  23  24  25

需要在main函数的输入参数中设置5,输出5*5的数字方格。如果是输入7,则是7*7的数字方格。
    public static void main(String[] args) {
        int count=0;
        Scanner in=new Scanner(System.in);
        count=in.nextInt();
        for(int i=1;i<=count*count;i++) {
            System.out.printf("%5d",i);
            if(i%count==0) {
                System.out.println();
            }
        }
    }
7
    1    2    3    4    5    6    7
    8    9   10   11   12   13   14
   15   16   17   18   19   20   21
   22   23   24   25   26   27   28
   29   30   31   32   33   34   35
   36   37   38   39   40   41   42
   43   44   45   46   47   48   49