Java类定义、成员变量定义、方法定义、成员变量与局部变量的区别

JavaSE 专栏收录该内容
43 篇文章 2 订阅

编程语言的三大发展阶段:面向机器语言、面向过程语言、面向对象语言 ;

其中面向对象语言主要体现三个特征:封装性、继承、动态 ;

类的定义:类声明和类体。基本格式如下:

class 类名{

   类体

}

特点:

1、类是Java程序的基本要素,一个Java应用程序就是由若干个类所构成;

2、类声明的变量称为对象变量,也简称 对象 ;

3、class 关键字是用来定义类 ;

4、类的目的是抽象出一类事物共有的属性和行为,并用一定的语法格式来描述所抽象出的属性和行为;

4、类名必须是合法的Java标识符;

Java标识符详细说明:(以及中文标识符的说明)

https://blog.csdn.net/LagerSwan/article/details/104081548


类的声明:

如下所示:

class Number {

.....

}

class 数字 {

.....

}

其中 class Number 与 class 数字 称为类的声明,而 Number 和 数字 则为类名 ;


类体,即 { } 中的内容:

类体的内容由如下两部分构成:

  • 变量的声明:用来存储属性的值 ;(体现了对象的属性)
  • 方法的定义:方法可以对类中声明的变量进行操作;(体现了对象的行为)

如下代码演示:

public class Class_Test {
	int number = 10;
	double numberd = 11.111;
	double TestDouble() {
		double numbers = 100 ;
		numbers += numberd;
		return numbers;
	}
	public static void main(String[] args) {
		Class_Test test = new Class_Test();
		System.out.println(test.TestDouble());
	}
}

在以上代码中,声明了一个类 Class_Test ,两个变量 number 与 numberd ,一个方法 TestDouble() ,一个主方法 main () ;


成员变量的定义:

一、成员变量的类型:

成员变量的类型可以是Java中的任何一种数据类型,包括了基本数据类型:整形、浮点型、逻辑类型、字符类型 ;引用类型中的:数组、对象和接口;  

如下代码演示:

public class Class_Test {

	public static void main(String[] args) {
		
		//成员变量的说明
		//基本数据类型的成员变量
		int testt = 11 ;
		float testf = 11.111f ;
		double testd = 11.11111 ;
		//引用类型的变量
		int a [] ;
		Class_Test test ;
		
	}
}

在以上代码中,成员变量:testt,testf,testd 是基本数据类型的变量;a [ ] ,test是引用类型的变量,a [ ] 为数组的变量,test 为类声明的变量,即类对象;

二、成员变量的有效范围:

成员变量在整个类内都是有效的,其有效性与它在类体中声明的先后位置是不关的;

如下代码演示:   最终输出: 110

public class Class_Test {
	
	//成员变量的有效范围:
	int number = 11 ;
	int Int_Test(){
		int int1 = number * digit ;
		return int1;
	}
	int digit = 10 ;

	public static void main(String[] args) {
		//类体的说明
		Class_Test test = new Class_Test();
		System.out.println(test.Int_Test());	
	}
}

不建议大家这样编写程序,当代码量多时,对代码的可读性有一定的影响,建议先声明成员变量,再定义方法;

三、成员变量的编写风格:

建议大家在声明成员变量时,变量的名字使用驼峰规则,即变量名由多个单词组成时,从第二个单词开始的其他单词的首字母大学;如:computerArea 、ClassExceptionShow 


方法的使用:

在类体中,方法的定义包括两部分:方法头、方法体 ;  一般格式如下:

方法头 {

   方法体

}

一、方法头说明

方法头由方法的类型、名称、名称后面的 () 以及 ()里面的参数列表所构成;

如下代码演示:

//无参数的方法头
double testd (){
    return 11.111;
}

//有参数的方法头, x 和 y 即为参数
double testd (double x,double y){
    return x+y;
}

二、方法体说明:

方法体即 方法()后面的 { } 以及 { } 里面的内容;

在方法体中声明的变量为局部变量,而不是成员变量,局部变量只在方法体内有效,而且与声明时的前后位置有关;

如下代码演示:

double testd = 10 ;
double testd (double x,double y){      //参数 x,y是局部变量
   double sum;                         //参数 sum 是局部变量
   sum = x + y ;

   if(sum>x){
       sum += testd ;         //参数 testd 是成员变量(全局变量)
}

    return sum;        //return 语句,返回 sum 的值
}

局部变量的介绍:

1、局部变量不同与成员变量,局部变量只在方法中有效,而且与其声明的位置顺序有关;

2、若局部变量声明在一个复合语句中,那么该局部变量的有效范围只在复合语句中有效;

double testd (double x,double y){      //参数 x,y是局部变量
	   double sum;                         //参数 sum 是局部变量
	   sum = x + y ;
	   if(sum != 0){
	       int ints = 1;        // ints 为复合语句中的局部变量
	       sum += ints ;
	}
        double bottom = 1.1;
        bottom += ints ;         //程序报错:ints cannot be resolved to a variable
	    return sum;
	}

3、若局部变量声明在一个循环语句中,那么该局部变量的有效范围只在循环语句中有效;和以上复合语句是一样的;


总结:成员变量与局部变量的区别

1、局部变量不同与成员变量,局部变量只在方法中有效,而成员变量在整个类中都有效;

2、局部变量与其声明的位置顺序有关,而成员变量与其声明的位置顺序无关;

3、若局部变量的名字和成员变量的名字相同,那么成员变量会被隐藏,即在方法体中成员变量暂时是无效的,如下代码演示:

class Test_Variable {
    int x = 10 , y ;
   void tests () {
      int x = 5 ;
      y = x + 10 ; //y的值为 15 ,而不是20,此时成员变量 x = 10 在该方法体中,暂时失效;
   }

}

4、当想使用方法中被隐藏的成员变量,可以使用关键字 this 进行调用,如下代码演示:

class Test_Variable {
    int x = 10 , y ;
   void tests () {
      int x = 5 ;
      y = this.x + 10 ; //此时 y 的值为 20 ,而不是15,this.x调用的为成员变量 x = 10 ;
   }

}

5、成员变量有默认值,而局部变量没有默认值,因此在使用局部变量时,要确保该局部变量是有初始值的,否则程序报错;

class Test_Variable {

           int  y ;
	   void tests () {
	      int x;       //报错:The local variable x may not have been initialized
	      y = x + 10 ; 
	   }

}

 

 

 

评论 1 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:黑客帝国 设计师:我叫白小胖 返回首页

打赏作者

LagerSwan、

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值