精华内容
下载资源
问答
  • java成员方法

    千次阅读 2020-04-13 18:19:45
    //成员方法 //第一种写法,无参数无返回值 例子:speak方法,输出我是一个好人 //第二种写法,无参数有返回值 例子:jisuan方法,计算1-1000的和 ,返回运行结果,结果的数据类型为int //第三种 有参数 有返回值 ...

    public class Fang {
    //成员变量
    //构造方法(函数)
    //成员方法
    //第一种写法,无参数无返回值 例子:speak方法,输出我是一个好人
    在这里插入图片描述
    //第二种写法,无参数有返回值 例子:jisuan方法,计算1-1000的和 ,返回运行结果,结果的数据类型为int
    在这里插入图片描述
    //第三种 有参数 有返回值 修改jisuan方法 可以接受一个变量n,根据n的值 计算从1-n的结果并返回,当有不确定元素的时候,把这个不确定的元素作为参数
    在这里插入图片描述
    //第四种 有参数 无返回值 add方法 输入两个数 不确定的数,计算两个数的和 在成员方法中输出结果
    在这里插入图片描述
    }
    成员方法调用
    在这里插入图片描述

    展开全文
  • java成员方法概念知识

    万次阅读 2015-04-02 20:41:44
    java成员方法基本概念

    java中的不能独立存在,必须定义在类里,逻辑上属于类或对象,因此必须使用类(static修饰的方法)或对象(非static修饰的方法或static修饰的方法)调用(不能独立执行)。

    参数传递机制

    java中只有一种参数传递机制:值传递,即将实际参数值的副本传入方法,而参数本身不受方法影响。当参数是基本数据类型时,这种机制很好理解,但是当参数是引用类型时,往往会造成误解。直接上例子:

    class Data{
        public int i;
        public int j;
        public Data(int i, int j){
            this.i = i;
            this.j = j;
        }
    }
    public class TransferTest{
        public void swap(int i,int j){
            int temp = 0;
            temp = i;
            i = j;
            j =temp;
        }
        public void swap(Data d){
            int temp = 0;
            temp = d.i;
            d.i = d.j;
            d.j = temp;
        }
        public static void main(String[] args){
            int a = 2;
            int b = 3;
            TransferTest tt = new TransferTest();
            tt.swap(a,b);
            System.out.println("a改变之后为:" + a);
            System.out.println("b改变之后为:" + b);
            Data d = new Data(4,5);
            tt.swap(d);
            System.out.println("d的成员变量i改变之后为:" + d.i);
            System.out.println("d的成员变量j改变之后为:" + d.j);
        }
    }

    结果为:
    误导
    可以看到a和b没有变化,d.i和d.j发生了对换。a和b符合值传递,不再解释。那么为啥d的成员变量互换了?
    我们知道值传递传的是副本,而对于类的对象来说也相当于副本(d是引用变量,d在栈中,指向堆中的实际对象)。那么通过值传递,传递的应该是是副本的一个副本,仍然指向堆中的实际对象,因此在方法中操作的是实际对象。上图说明(有点搓,凑合看吧):
    瞎图
    可以在swap()中设置d=null(方法中的d指向null),结果没变,即说明了是值传递。

    形参个数可变的方法

    从JDK1.5开始,java允许定义形参个数可变的方法,有两种方法定义:

    1. 在定义方法时,在最后一个参数的类型后增加三个点,则表示该方法可接受多个参数,以数组形式传入。代码如下:

      public class Var{
      public static void test(int i,int ... a){
          //a被当做数组处理
          for(int temp : a){
              System.out.println(temp);
          }
      }
      public static void main(String[] args){
          test(1,2,3,4,5);
          System.out.println("----华丽的分割线1----");
          test(1,2,3,4,5,6,7,8,9);
          System.out.println("----华丽的分割线2----");
          //直接用数组做实参
          int[] a = {2,3,4};
          test(1,a);
      }
      }

      需注意的是:这种方式的参数只能在形参列表的最后给出,因此一个方法中只能有一个可变的形参,可以用数组赋值

    2. 在定义方法时,可以在任意位置采用数组形式作为参数:

      public class Var{
          public static void test(int i,int[] a){
              for(int temp : a){
                  System.out.println(temp);
              }
          }
          public static void main(String[] args){
              int[] a = {2,3,4};
              //实参只能是数组
              test(1,a);
          }
      }

    重载(Overload)

    重载含义:同一个类中,形参列表不同(个数,类型,顺序)的多个方法,即两同一不同:同类,同名,不同形参列表。至于返回值类型、修饰符不能作为方法重载的依据。如下代码:

    public class Overload{
        public void test(){
            ;
        }
        public int test(){
            int i = 0;
            return i;
        }
    
    }

    提示错误为:
    error
    即例子中两个test()方法只有返回值类型不同,不能称之为重载。举个简单的例子若例子中某个方法调用test()方法:

    test();

    这种情况人都不能区分调用的是哪个更何况机器!
    还有不怎么建议重载形参长度可变的方法,

    展开全文
  • 声明成员方法可以定义类的行为,行为表示一个对象能够做的事情或者能够从一个对象取得的信息。类的各种功能操作都是用方法来实现的,属性只不过提供了相应的数据。一个完整的方法通常包括方法名称、方法主体、方法...

    声明成员方法可以定义类的行为,行为表示一个对象能够做的事情或者能够从一个对象取得的信息。类的各种功能操作都是用方法来实现的,属性只不过提供了相应的数据。一个完整的方法通常包括方法名称、方法主体、方法参数和方法返回值类型,其结构如图 1 所示。
     


    图1 方法组成元素


    成员方法一旦被定义,便可以在程序中多次调用,提高了编程效率。声明成员方法的语法格式如下:

    
     
    1. public class Test
    2. {
    3. [public|private|protected][static]<void|return_typexmethod_name>([paramList])
    4. {
    5. //方法体
    6. }
    7. }


    上述代码中一个方法包含 4 部分:方法的返回值、方法名称、方法的参数和方法体。其中 retum_type 是方法返回值的数据类型,数据类型可以是原始的数据类型,即常用的 8 种数据类型,也可以是一个引用数据类型,如一个类、接口和数组等。

    除了这些,一个方法还可以没有返回值,即返回类型为 void,像 main() 方法。method_name 表示自定义的方法名称,方法的名称首先要遵循标识符的命名约定,除此之外,方法的名称第一个单词的第一个字母是小写,第二单词的第一个字母是大写,依此类推。

    paramList 表示参数列表,这些变量都要有自己的数据类型,可以是原始数据类型,也可以是复杂数据类型,一个方法主要依靠参数来传递消息。方法主体是方法中执行功能操作的语句。其他各修饰符的含义如下。

    • public、private、protected:表示成员方法的访问权限。
    • static:表示限定该成员方法为静态 方法。
    • final:表示限定该成员方法不能被重写或重载。
    • abstract:表示限定该成员方法为抽象方法。抽象方法不提供具体的实现,并且所属类型必须为抽象类。

    例 1

    为上一节创建的学生类 Student 添加一个可以返回学生信息字符串的方法。代码如下:

    
     
    1. public class Student
    2. {
    3. public StringBuffer printInfo(Student st)
    4. {
    5. StringBuffer sb=new StringBuffer();
    6. sb.append("学生姓名:"+st.Name+"\n 学生年龄:"+st.Age+"\n 学生性别:"+st.isSex());
    7. return sb;
    8. }
    9. }


    上述代码创建了一个名称为 printInfo 的方法,其返回值类型为 StringBuffer(引用数据类型)。该方法需要传递一个 Student 类型的参数,最后需要将一个 StringBuffer 类型的数据返回。

    1. 成员方法的返回值

    若方法有返回值,则在方法体中用 return 语句指明要返回的值,其格式如下所示。

    return表达式

    或者

    return(表达式)


    其中,表达式可以是常量、变量、对象等。表达式的数据类型必须与声明成员方法时给出的返回值类型一致。

    2. 形参、实参及成员方法的调用

    一般来说,可以通过以下方式来调用成员方法:

    methodName({paramList})

    关于方法的参数,经常会提到形参与实参,形参是定义方法时参数列表中出现的参数,实参是调用方法时为方法传递的参数。

    例 2

    下面 retumMin() 方法中的 m 和 n 是形参,调用 retumMin() 方法时的 x 和 y 是实参。

    
     
    1. public int returnMin(int m,int n)
    2. {
    3. return Math.min(m,n); //m和n是形参
    4. }
    5. public static void main(String[] args)
    6. {
    7. int x=50;
    8. int y=100;
    9. Test t=new Test();
    10. int i=t.returnMin(x,y); //x和y是实参
    11. System.out.println(i);
    12. }


    方法的形参和实参具有以下特点:

    • 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在方法内部有效,方法调用结束返回主调 方法后则不能再使用该形参变量。
    • 实参可以是常量、变量、表达式、方法等,无论实参是何种类型的量,在进行方法调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值、输入等办法使实参获得确定值。
    • 实参和形参在数量、类型和顺序上应严格一致,否则会发生“类型不匹配” 的错误。
    • 方法调用中发生的数据传送是单向的,即只能把实参的值传送绐形参,而不能把形参的值反向地传送给实参。因此在方法调用过程中,形参的值发生改变,而实参中的值不会变化。

    例 3

    下面的示例演示了调用 add() 方法前后形参 x 的变化。

    
     
    1. public int add(int x)
    2. {
    3. x+=30;
    4. System.out.println("形参 x 的值:"+x);
    5. return x;
    6. }
    7. public static void main(String[] args)
    8. {
    9. int x=150;
    10. System.out.println("调用 add() 方法之前 x 的值:"+x);
    11. Test t=new Test();
    12. int i=t.add(x);
    13. System.out.println("实参 x 的值:"+x);
    14. System.out.println("调用 add() 方法的返回值:"+i);
    15. }


    运行上述程序,输出结果如下:

    调用 add() 方法之前 x 的值:150
    形参 x 的值:180
    实参 x 的值:150
    调用 add() 方法的返回值:180

    从输出结果可以看出,形参 x 值的改变,并没有影响实参 x。

    在调用成员方法时应注意以下 4 点:

    1. 对无参成员方法来说,是没有实际参数列表的(即没有 paramList),但方法名后的括号不能省略。
    2. 对带参数的成员方法来说,实参的个数、顺序以及它们的数据类型必须与形式参数的个数、顺序以及它们的数据类型保持一致,各个实参间用逗号分隔。实参名与形参名可以相同,也可以不同。
    3. 实参也可以是表达式,此时一定要注意使表达式的数据类型与形参的数据类型相同,或者使表达式的类型按 Java 类型转换规则达到形参指明的数据类型。
    4. 实参变量对形参变量的数据传递是“值传递”,即只能由实参传递给形参,而不能由形参传递给实参。程序中执行到调用成员方法时,Java 把实参值复制到一个临时的存储区(栈)中,形参的任何修改都在栈中进行,当退出该成员方法时,Java 自动清除栈中的内容。

    3. 方法体中的局部变量

    在方法体内可以定义本方法所使用的变量,这种变量是局部变量。它的生存期与作用域是在本方法内,也就是说,局部变量只能在本方法内有效或可见,离开本方法则这些变量将被自动释放。

    在方法体内定义变量时,变量前不能加修饰符。局部变量在使用前必须明确赋值,否则编译时会出错。另外,在一个方法内部,可以在复合语句中定义变量,这些变量只在复合语句中有效。

    展开全文
  • 声明成员方法时,导入操作数组会报错,不导入反而不报错。如下图,其中fd是其他地方定义的类。求原因 ![图片说明](https://img-ask.csdn.net/upload/201810/31/1540952839_923136.png) ![图片说明]...
  • 我们通过第1句System.out.println(a.getx()) 我们看似在调用A类的 getx()方法,其实则不然,我们调用的a对像的实例引用的getx()方法,就是B类的getx方法,B类的getx方法,当然只返回b类的x成员,即20   转载于:...

    如下面例子:

    public class A {
        int x=10;
        
        public int getx() {return x;}
    }
    public class B extends A {
        int x=20;
        
    }
    
    public class C {
        public static void main(String[] args) {
            A a=new B();
            System.out.println(a.getx());  //1 
            
            B b=new B();
            System.out.println(b.getx());  //2
        }
    }

    运行结果如下:

    10

    10

    从上面的两个结果可以看出 不论是a 对像还是b 对像,它所对的B类中都没有getx()方法,我们通过b对像所访问的getx方法都是运行的从父类继承过来的方法,当运行父类的方法时,返回的当然是父类中的x 。

    再看下面的例子:

    public class A {
        int x=10;
        
        public int getx() {return x;}
    }
    public class B extends A {
        int x=20;
        
        public int getx() {return x;}
        
    }
    public class C {
        public static void main(String[] args) {
            A a=new B();
            System.out.println(a.getx());   //1
            
            B b=new B();
            System.out.println(b.getx());
        }
    }

    运行结果为:

    20

    20

    我们通过第1句System.out.println(a.getx()) 我们看似在调用A类的  getx()方法,其实则不然,我们调用的a对像的实例引用的getx()方法,就是B类的getx方法,B类的getx方法,当然只返回b类的x成员,即20

     

    转载于:https://www.cnblogs.com/bateman6988/p/7566029.html

    展开全文
  • java方法的参数主要有三种:值参数、引用参数和不定长参数 1、值参数 值参数表面实参与形参之间按值传递,当使用值参数的方法被调用时,编译器为形参分配存储单元,然后将对应的实参的值复制到形参中,由于值类型...
  • Java成员变量与成员方法

    千次阅读 2019-05-27 10:28:49
    学而时习之,温故而知新. 成员变量: 在Java中对象的属性成为成员变量, 有时候很多人也喜欢把成员变量等同于全局变量, ...在Java中使用成员方法来对应与类对象的行为,在类中,除了变量外的都是成员方法。 一个案...
  • Java 成员变量和成员方法

    千次阅读 2018-12-07 10:25:44
    Java 语言中对象的属性以成员变量的形式存在,对象的方法以成员方法的形式存在。 成员变量 在 Java 中对象的属性也称为成员变量。为了了解成员变量,首先定义一个图书类,成员变量对应于类对象的属性,在 Book 类...
  • 成员变量和方法一、成员变量我们都已经知道类体内容有两个成员成员变量和方法成员变量用来刻画类创建的对象的属性,其中一部分成员变量称为实例变量,另一部分称为静态变量和类变量。在定义成员变量时可以对其初始...
  • Java构造方法和成员方法

    万次阅读 2017-10-25 20:57:56
    构造方法和成员方法 1:构造方法 1:构造方法作用概述 给对象的数据进行初始化 2:构造方法格式 方法名与类名相同 没有返回值类型,连void都没有 没有具体的返回值 3:构造方法注意事项 如果...
  • 成员变量 成员变量是指类的一些属性定义,标志类的静态特征,它的基本格式如下: 访问修饰符 修饰符 类型 属性名称=初始值; 访问修饰符:可以使用四种不同...private 表示属性只可以由该类中的其它方法来调用。pro
  • java成员变量和方法

    千次阅读 2018-08-11 23:33:25
    能在类中存在的只有成员变量和成员方法,只要是一个方法就可以称为成员方法,它只是方法的统称。 类包括成员变量和方法两部分。成员变量表示类的属性,一数据域的形式表达,方法是数据的操作的定义。 在JAVA中,...
  • Java 构造方法与成员方法的区别

    千次阅读 多人点赞 2019-05-27 10:48:30
    认定构造方法是,类名与构造方法相同,这个方法就是构造方法,这个类中除了构造方法以外的方法都是构造方法,原因是在类中,除了变量外的基本都是成员方法。 看一个小案例 package me; public class Me { private ...
  • Java构造方法和成员方法的区别

    千次阅读 2020-02-24 21:12:03
    构造方法和成员方法的区别 A:格式区别 构造方法和类名相同,并且没有返回类型,也没有返回值。 普通成员方法可以任意起名,必须有返回类型,可以没有返回值。 B:作用区别 构造方法用于创建对象,并进行初始化值。 ...
  • 静态方法与成员方法 定义方法的时候,有static和没有static有什么区别? 1.有static的方法,叫静态方法。 2.没有static的方法,叫成员方法(实例方法)。 定义静态方法的格式: public static 返回值类型 方法名称...
  • java成员变量、成员方法、构造函数

    千次阅读 2018-02-08 14:03:40
    1.引用变量一个类的基本内容是由成员变量、成员方法、构造函数构成的。那其实成员变量中比较特殊的是可以引用变量。在jvm存储上,基本类型的数据是直接存储的,而引用变量例如String,或自己创建的类,是会额外的栈...
  • java成员方法与类

    2019-07-06 09:45:58
    1.尝试编写一个类,定义一个修饰权限为p riv at e的成员变量,并定义两个成员方法,一个成员方法实现为此成员变量赋值,另一个方法获取这个成员变量的值,保证其它类 继承该类时触获取该类成员变量的值。 2.尝试编写...
  • java中构造方法和成员方法的区别 构造方法是类的一种特殊方法,用于实例化类时给类的一些属性赋初值;成员方法则是类的一般方法,用来调用的。 例如: public class Users{ private String username; private ...
  • Java成员详解-Java成员概念大全

    千次阅读 2017-06-08 10:57:05
    Java成员 变量 方法 构造器 初始化块 内部类
  • 1.java成员变量处在堆内存(方法区中的静态区)中,局部变量处在栈内存中; 知其然知其所以然,我们简单了解一下Java内存分配: 一个完整的Java程序运行过程会涉及以下内存区域: 寄存器:JVM内部虚拟寄存器,...
  • • 成员(成员变量或成员方法) 访问权限共有四种: • public 公共的 可以被项目中所有的类访问。 (项目可见性) • protected 受保护的 可以被这个类本身访问; 同一个包中的所有其他的类访问; 被它的子类(同一个...
  • Java中成员变量和成员方法的使用

    千次阅读 2016-10-16 21:56:56
    package g.practise_myself;... 功能:成员变量和成员方法的使用  */ import java.io.*; public class Object  { public static void main(String[] args) { //创建一个人的对象 Person p1=new
  • 成员方法:(对象)修饰符public类 有返回值 调用需要 对象名.方法名 EX:public 方法名(参数){ 方法体 } 静态方法(类方法):修饰符public static 又返回值 调用需要 类名.方法名 EX: ...
  • 记得刚毕业那会儿刚开始转Java的时候,这几个概念还分不太清楚, 弄了还蛮久的,现在把之前做的笔记加上现在自己的理解记录...Java中的变量可以分为成员变量,全局变量 成员变量和局部变量的区别  成员变量:(类

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 54,199
精华内容 21,679
关键字:

java成员方法

java 订阅