二、方法和构造函数

一、方法


1、定义:可以看成是构成程序的一个比较小的模块,每个模块都有自己的功能。

2、好处:1.可以减少代码的耦合度

                 2.避免代码的重复

3、方法的声明

  修饰符 返回值类型 方法名 (参数列表){//方法头部

    //方法体,由一条或多条语句组成,通常由一组实现特定功能的代码组成

  }

***实例1***

  public static int max(int num1,int num2){

  int result;

  if(num1>num2)

  result=num1;

  else

  result=num2;

  return result;

  }

4、修饰符

***它是可选的,可有可无,目的是为了告知编译器如何调用该方法***

如:public,private,protected等,以及final和static等修饰符。

    public:公有的方法,在任何地方都可以调用。

    static:说明方法是静态的方法,它既能被静态的方法调用,也可以被非静态的方法调用。

*****范围修饰********

  可以修饰类(class),修饰方法,修饰成员变量

  类只可以修饰为public,默认不写就是public

  public (公共的):谁(什么类)都可以调用


  private (私有的):只能当前这个类当中的代码可以调用。


  protected (保护的):只能在同一个包下面可以相互调用。


实例1:

      public static int max(int num1,int num2)

5、返回值类型

****可选的,可以有返回值,也可以没有返回值,给出返回值的数据类型。没有返回值,给出void****

实例1:

      public static int max(int num1,int num2)

6、方法名

  必须遵守标识符的命名规则:习惯上与变量名一样,并且也应该做到见名知意;如果名字由多个单词组成,则从第二个单词开始首字母大写。

实例1:

      public static int max(int num1,int num2)

7、参数列表

  可以为空或多个参数,当有多个参数时,中间用逗号隔开;每个参数给出数据类型和名字。又称为形式参数列表。

  参数列表指出调用方法需要传递的参数的类型以及个数。

实例1:

      public static int max(int num1,int num2){

      int result;

      if(num1>num2)

      result=num1;

      else

      result=num2;

      return result;

      }

8、return的作用:一是用来返回方法的结果,二是用来结束的一个方法。

实例1:

      public static int max(int num1,int num2){

      int result;

      if(num1>num2)

      result=num1;

      else

      result=num2;

      return result;

9、********************注意*******************

  方法不可以嵌套,在一个方法内部,不允许再定义方法。



二、方法调用

1、方法的名字(实际参数列表)

2、实参和形参保持三个一致:个数,顺序,类型

实例1:

      public static int max(int num1,int num2){

      int result;

      if(num1>num2)

      result=num1;

      else

      result=num2;

      return result;

实例1的调用:

    int num=max(5,10);

  或者: int x=10,y=2;

        int n=max(x,y);

3、参数传值:值传递、地址传递。

值传递:实参是常量,直接将常量值传递给形参变量,实参是变量,将实参变量的值传递给形参变量;

实参(argument):

全称为"实际参数"是在调用时传递给函数的参数. 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。

形参(parameter):

全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有确定的值。

实例2:

      static void swap(int x,int y){

          int temp;

          temp=x;

          x=y;

          y=temp;

      }

      main方法中的调用:int a=3,b=5;

                      swap(x,y);

                      system.out.println("a="+a+",b="+b);

4、地址传递

实参的地址传递给相应的形参,形式参数与实际参数使用相同的内存地址单元,通过调用被调方法可以改变实参的值。

实例3:

      public static void swap(int[] a){

      int temp;

      temp=a[0];

      a[0]=a[1];

      a[1]=temp;

      }

main方法中的调用:

                int[] a={1,2,3,4,5};

                swap(a);

                System.out.println("a[0]="+a[0]+",a[1]="+a[1]); 



三、方法重载

1、定义:java允许在一个类中,多个方法拥有相同的名字,但是名字相同时,必须有不同的参数。

实例4:int max(int n1,int n2){

      return n1>n2?n1:n2;

      }

      double max(double n1,double n2){

      return n1>n2?n1:n2;

      }

      int max(int n1,int n2,int n3){

        if(n1>n2&&n1>n3)

        return n1;

      if(n2>n1&&n2>n3)

        return n2;

      if(n3>n1&&n3>n1)

        return n3;

      }

实例4的调用:max(5,10);

            max(3,10,5);

实例5:

double min(int n1,double n2){

return n1<n2?n1:n2;

}

double min(double n1,int n2){

return n1<n2?n1:n2;

实例5的调用:int x=5,y=8;

min(x,y);

四、局部变量作用域


1、变量的作用域:指可以使用此变量的简单名称来引用它的程序区域。变量声明在程序的位置决定了变量的作用域。

2、变量的类型:局部变量,成员变量,异常处理参数

局部变量:方法声明部分的形式参数、方法内部定义的变量、以及循环部分定义的变量。(在方法头部或方法的一块代码中声明,它的作用域为它所在的代码块)。

成员变量:是一个类的成员,它在一个类的内部,但是在任何方法或构造器之外声明。成员变量的作用域是整个类。

异常处理参数:被传递给异常2处理代码,它的作用域是异常处理部分,也就是catch语句后面的{之间的代码块。

**********在一个确定的域中,变量名应该是唯一的。通常一个域用花括号[}来划定。************

实例2:

      static void swap(int x,int y){

          int temp;

          temp=x;

          x=y;

          y=temp;

      }

      main方法中的调用:int a=3,b=5;

                      swap(x,y);

                      system.out.println("a="+a+",b="+b);

  ********************解析如下********************

方法头部定义了两个形式参数x和y,它们的作用范围是整个方法体,当调用该方法时,首先创建变量x和y,也就是在内存中为x和y分配空间(这与a和b的空间是不一样的),接着

会将a的值传给x,将b的值传给y,开始执行的方法内部的代码,将x和y的值进行交换,方法结束后,变量x和y就会被销毁,因此,对a和b的值并不产生任何影响,那么这个方法并

不能实现将a和b的值进行交换。


五、构造函数

1、构造函数与普通函数的区别

   在实例化中去调用,普通函数是直接通过类或者通过对象去调用。

2、构造函数跟普通函数的差别。

2.1.构造函数的名称只能跟类名相同。

2.2.只能在实例化的时候调用(就是只能跟在关键字new 的后面使用)。

2.3构造函数没有返回值。

Dog dog = new Dog("小黑");


3、类与构造函数的关系

调用构造函数就会产生一个该类的实例化对象。

4、自定义的构造函数

默认的构造函数

class 类名{

private int id;

private String name;

public 类名(){

}

}


自定义的构造函数

class 类名{

private int id;

private String name;

public 类名(int id,String name){

this.id=id;

this.name=name;

}

}


5、this关键字

在那个对象使用,this就是代表那个对象

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

推荐阅读更多精彩内容

  • 第01章 JAVA简介第02章 基础语法第02章 递归补充第03章 面向对象第04章 异常处理第05章 数组第06...
    顺毛阅读 510评论 0 1
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 18,934评论 17 410
  • 01-常量与变量 学习swift第一步打印Hello World print("Hello World") swi...
    iOS_恒仔阅读 5,132评论 2 19
  • 1月16日起,由艺术学院2015级音乐学一班全体同学经过一学期紧张有序的排练的《江姐》,终于拉开帷幕啦!届...
    小努豆儿阅读 311评论 0 0
  • “ 她可以枯萎,可以凋零,我不在乎;但只要我看她一眼,万般柔情,涌上心头。” 我从不知,一句话,可以在我心上沉浮如...
    cea7747ae348阅读 140评论 0 0