Java 入门之【方法 】的那些事

虽然我们写过很多很多的方法,但是**** 什么是方法**** 呢?

在Java中,方法是语句的集合,它们在一起执行一个功能。是解决一类问题的步骤的有序组合,包含于类或对象中,在程序中被创建,在其他地方被引用。

为什么要写方法呢?自然是有*** 它的优点***。

  • 使程序变得更简短而清晰。
  1. 有利于程序维护。
  2. 可以提高程序开发的效率。
  3. 提高了代码的重用性。

**** 方法的命名规则****

  • 必须以字母、'_'或'$'开头。
  1. 可以包括数字,但不能以它开头。

一般情况下,定义一个方法的语法是:

public static int funcName(int a, int b) {
  // body
}

其中:
1、 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用

2、 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为**** void ****;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用**** return ****语句返回值

3、 方法名:定义的方法的名字,必须使用合法的标识符

4、 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开

**** 方法的调用****
要想使用一个方法,该方法必须要被调用。方法调用有两种方式,一种是有返回值的,一种是没有返回值的。

调用方法很简单,当程序需要调用一个方法时,控制程序转移到被调用的方法,方法将会返回两个条件给调用者:

  • 返回一条执行语句
  • 执行到方法结束

将返回void的方法作为一个调用语句,例如:

System.out.println("你好,明天!");```
该方法的返回值可以通过下面的例子被理解:

int result = sum(6, 9);```
****Java 中无参无返回值方法的使用****

public class Demo9 {

    public static void main(String[] args) {
        Demo9 hello = new Demo9();
        hello.show();
    }

    public void show() {
        System.out.println("加油!");
    }
}

****Java 中无参带返回值方法的使用****

public class Demo9 {

    public static void main(String[] args) {
        //创建对象,对象名叫hello
        Demo9 hello=new  Demo9();
        //调用方法并接收方法的返回值,保存在变量sum中
        int sum=hello.calNum();
        System.out.println("两数之和:"+sum);

    }

    // 定义无参数返回值的方法
    public int calNum() {
        int a = 5;
        int b = 10;
        int sum = a + b;
        return sum;
    }

}

**** Java 中带参无返回值方法的使用****

public class Demo10 {

    public static void main(String[] args) {
        Demo10 hello=new Demo10();
        hello.calcAvg(50, 51);
    }
   // 定义带参数返回值的方法
    public void calcAvg(int a,int b){
        double avg=(a+b)/2.0;
        System.out.println("平均分: "+avg);
    }
}

**** Java 中带参带返回值方法的使用****

public class Demo11 {

    public static void main(String[] args) {
        Demo11 hello=new Demo11();
        int []scores={79,52,80,99};
        //调用方法,传入成绩数组,并取得成绩的个数
        int count=hello.sort(scores);
    }
    public int sort(int []scores) {
    Arrays.sort(scores);
        System.out.println(Arrays.toString(scores));
        return scores.length;
    
    }
}

**** 构造方法 ****
当一个对象被创建时候,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但构造方法没有返回值。
不管你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个默认构造方法,它把所有成员初始化为0。
一旦你定义了自己的构造方法,默认构造方法就会失效。
例如:

// 一个简单的构造函数
class MyClass {
      int x; 
// 以下是构造函数
 MyClass() { 
      x = 10;
  }
}

**** 方法重写与方法重载的区别****

方法重写与方法重载.png

在面向对象程序设计的思想中,类的继承和多态性主要就是体现在子类重写父类的方法。而构造方法的重载作为方法重载的一个典型特例,可以通过重载构造方法来表达对象的多种初始化行为。
参考博客: 方法重写与方法重载

**** finalize() 方法****
Java 允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,用来清除回收对象。例如,你可以使用 finalize() 来确保一个对象打开的文件被关闭了。
在 finalize() 方法里,你必须指定在对象销毁时候要执行的操作。
finalize()方法一般是如下形似:

protected void finalize( )
{
   // 在这里终结代码
}

关键字 protected 是一个限定符,它确保 finalize() 方法不会被该类以外的代码调用。
当然,Java 的内存回收可以由 JVM 来自动完成。如果手动使用,则可以使用上面的方法。例子:

public class Demo12 {

    public static void main(String[] args) {

        Cake c1 = new Cake(1);
        Cake c2 = new Cake(2);
        Cake c3 = new Cake(3);

        c2 = c3 = null;
        System.gc(); // 调用Java垃圾收集器
    }
}

    class Cake extends Object {
        private int id;
    
        public Cake(int id) {
            this.id = id;
            System.out.println("Cake Object " + id + "is created");
        }
    
        protected void finalize() throws java.lang.Throwable {
            super.finalize();
            System.out.println("Cake Object " + id + "is disposed");
        }

}

运行结果如下:

Cake Object 1is created
Cake Object 2is created
Cake Object 3is created
Cake Object 3is disposed
Cake Object 2is disposed

关于方法的事,就讲这么多了。如有不对的地方,请指正。谢谢~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容