类——方法知识点

本文详细介绍了Java类中的方法,包括实例方法、静态方法和构造方法的格式、特点及调用关系。讨论了方法重载的概念,强调了方法重载与返回值类型无关,主要依赖参数的不同。同时阐述了在同一类中,方法如何访问变量和方法的规则,以及静态方法为何不能访问实例元素。
摘要由CSDN通过智能技术生成

         类——方法

4.7.Java类中方法的表现形式及其基本特征?

Java类中方法是为了描述具有共同性质的一组数物的基本功能/行为。

Java类中方法的表现形式

1.实例方法格式

访问限制修饰符  方法的返回值数据类型  方法的名称(参数列表){方法体}

1.访问限制修饰符---public  缺省的

2.方法的返回值数据类型

返回值-----方法执行结果

数据类型---基本数据类型【复合数据类型】

有返回值---方法体中的最后一句话是“return”,方法的返回值数据类型一定是结果值的具体数据类型

没有返回值---方法体中的没有“return”,方法的返回值数据类型void代替。

1.方法的名称---合法的标识符【首字母小写,从第二个单词开始首字母大写】

2.参数列表

参数----引入本方法以外的数据进入本方法进行运算【找帮手】局部变量

列表----可以有多个

没有参数的时候--()中的内容是空的

1.方法体--方法的身体【具体执行代码】

例如:

public   void  test1(){ } --- 没有返回值,没有参数的实例方法

public   int   test2(){ return 12;}---返回值为int,没有参数的实例方法

public   void  test3(int a){  } ---- 没有返回值,有参数1个int型参数的实例方法

public   String test4(UserBean user){  return “hello”;}---返回值为String的,有一个UserBean参数的实例方法。

public   Student  test5(UserBean user,int num,char  value){  return null;}

1.静态方法格式

实例方法的访问限制修饰符后面加上static关键字的方法就是静态方法【类方法】

没有static关键字的方法就是实例方法

例如:

public static  void  test1(){ } --- 没有返回值,没有参数的静态方法【类方法】

public static   int   test2(){ return 12;}---返回值为int,没有参数的静态方法【类方法】

public static  void  test3(int a){  } ---- 没有返回值,有参数1个int型参数的静态方法【类方法】

public static  String test4(UserBean user){  return “hello”;}---返回值为String的,有一个UserBean参数的静态方法【类方法】。

public  static  Student  test5(UserBean user,int num,char  value){  return null;}

1.构造方法格式

实例方法格式中去掉方法的返回值数据类型,方法的名称是类名这种方法就叫构造方法。

例如:

public  class  Person{

  public  Person(){ } --- 无参数的构造方法

  public  Person(int num){ }  ---  有一个int型参数的构造方法

  public  Person(UserBean user){ } ---有一个UserBean 型参数的构造方法

public  Person(UserBean user,int num,char  value){}

}

构造方法作用就是将来为了创建对象用的。

当一个类创建好以后,会有一个默认的无参数构造方法存在,只是没有显式写出罢了。

当这个类中出现一个有参数的构造方法时,我们就需要将这个默认的无参数构造方法

显式写出,如果没有显式写出这个默认的无参数构造方法,那么这个默认的无参数构造方法将会被有参数的构造方法覆盖。

public  class  Student{

//存在一个默认的无参数构造方法

public Student(){}

public  Student(String name){} 

}

4.8.什么是方法重载?

在同一个类中方法的名称相同,参数不一样,这种现象就叫方法重载。

注意:方法重载与方法的返回值类型没有关系

例如:

public  class  UserBean{

public  void  test1(){}

public  int   test1(int num){return 0;}

}

参数不一样---先看个数,后看类型

例如:

public  class  UserBean{

public  void  test1(int num){}

public  int   test1(int num1 ,double num2){return 0;}   //  int   double 

public  int   test1(double num2,int num1 ){return 0;}   //  double   int 

}

构造方法、实例方法、静态方法都是可以重载的。

4.9.同一个Java类中方法与变量的调用关系?

public class  Person{
       public  int  perid=1001;//实例变量
       public static  String pername="zhangsan";//类变量
       //构造方法中可以访问实例变量/类变量/局部变量
       public  Person(){
		char  sex='男'; //局部变量
		//构造方法中访问实例变量默认this.实例变量,this可以被省略。
		System.out.println("构造方法中-实例变量-perid【默认】=="+this.perid);
		System.out.println("构造方法中-实例变量-perid=="+perid);
		//构造方法中访问类变量默认类名.实例变量,也可以this.类变量,类名/this可以被省略
		System.out.println("构造方法中-类变量-pername【类名】=="+Person.pername);
		System.out.println("构造方法中-类变量-pername【this】=="+this.pername);
		System.out.println("构造方法中-类变量-pername=="+pername);
		//构造方法中访问局部变量直接变量名称
		System.out.println("构造方法中-局部变量-sex=="+sex);
	}

   //实例方法中可以访问实例变量/类变量/局部变量

       

  public  void  testMehtod1(){

                  char  sex='男'; //局部变量

                  //实例方法中访问实例变量默认this.实例变量,this可以被省略。

                  System.out.println("实例方法中-实例变量-perid【默认】=="+this.perid);

                  System.out.println("实例方法中-实例变量-perid=="+perid);

                  //实例方法中访问类变量默认类名.实例变量,也可以this.类变量,类名/this可以被省略

                  System.out.println("实例方法中-类变量-pername【类名】=="+Person.pername);

                  System.out.println("实例方法中-类变量-pername【this】=="+this.pername);

                  System.out.println("实例方法中-类变量-pername=="+pername);

                  //实例方法中访问局部变量直接变量名称

                  System.out.println("实例方法中-局部变量-sex=="+sex);

         }

        

         //静态方法中不可以访问实例变量变量

         //静态方法中可以访问类变量/局部变量

        

         public static  void  testStaticMehtod(){

                  char  sex='男'; //局部变量

                  //System.out.println("静态方法中-实例变量-perid=="+perid);//错误

                  //静态方法中访问类变量默认类名.实例变量,类名可以被省略

                  System.out.println("实例方法中-类变量-pername【类名】=="+Person.pername);

                  //静态方法中不能有this

                  //System.out.println("实例方法中-类变量-pername【this=="+this.pername);

                  System.out.println("静态方法中-类变量-pername=="+pername);

                  //静态方法中访问局部变量直接变量名称

                  System.out.println("静态方法中-局部变量-sex=="+sex);

         }

}



public  class  TestMain{

         public static void main(String args[]){

            Person per1=new Person();

            per1.testMehtod1();

       per1.testStaticMehtod();

         }

}

总结:

在用一个类中:

构造方法中可以访问实例变量/类变量/局部变量

//构造方法中访问实例变量默认this.实例变量,this可以被省略。

//构造方法中访问类变量默认类名.实例变量,也可以this.类变量,类名/this可以被省略

//构造方法中访问局部变量直接变量名称

 

实例方法中可以访问实例变量/类变量/局部变量

//实例方法中访问实例变量默认this.实例变量,this可以被省略。

//实例方法中访问类变量默认类名.实例变量,也可以this.类变量,类名/this可以被省略

//实例方法中访问局部变量直接变量名称

 

静态方法中可以访问类变量/局部变量,不可以访问实例变量

//静态方法中访问类变量默认类名.实例变量,类名可以被省略

//静态方法中不能有this

//静态方法中访问局部变量直接变量名称

4.10.同一个Java类中方法与方法的调用关系?

在用一个类中:

构造方法中可以访问其他的构造方法/实例方法/类方法

//构造方法中访问其他的构造方法new  其他的构造方法;

//构造方法中访问实例方法默认this.实例方法,this可以被省略

//构造方法中访问类方法默认类名.类方法,也可以this.类方法,类名/this可以省略

 

实例方法中可以访问构造方法/其他实例方法/类方法

//实例方法中访问构造方法默认new  构造方法

//实例方法中访问其他实例方法默认this.其他实例方法,this可以被省略

//实例方法中访问类方法默认类名.类方法,也可以this.类方法,类名/this可以省略

 

静态方法中可以访问构造方法/其他的静态方法,不可以访问实例方法

//静态方法中访问构造方法new  构造方法

//静态方法中不能有this

//静态方法中访问类方法默认类名.类方法,类名可以省略

 

为什么静态方法中不可以访问实例元素?

静态方法内存分配时机早于实例元素的内存分配时机,静态方法访问实例元素的时候,实例元素是不存在。

注意七点:

1.类是什么?

2.成员变量与局部变量的特征?

3.实例变量与静态成员变量的区别?

4.成员变量的隐藏?

5.同一个类方法如何访问变量?

6.同一个类方法如何访问方法?

7.方法的重载?

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值