Java类定义、成员变量定义、方法定义、成员变量与局部变量的区别
编程语言的三大发展阶段:面向机器语言、面向过程语言、面向对象语言 ;
其中面向对象语言主要体现三个特征:封装性、继承、动态 ;
类的定义:类声明和类体。基本格式如下:
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 variablereturn 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 initializedy = x + 10 ; }}
Java类定义、成员变量定义、方法定义、成员变量与局部变量的区别相关推荐
- Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 556 文章- 38 评论- 77 ...
- python定义私有变量的方法_Python私有变量的定义方法
学过编程语言的人员,都知道私有变量在编程中必不可少,与Java和C语言用private关键字定义私有变量不同,Python是在变量前面加上双横杠(例如:__test)来标识, Python私有变量只能 ...
- java main方法static_在java中为什么要把main方法定义为一个static方法?
我们知道,在C/C++当中,这个main方法并不是属于某一个类的,它是一个全局的方法,所以当我们执行的时候,c++编译器很容易的就能找到这个main方法,然而当我们执行一个java程序的时候,因为ja ...
- java类与对象(属性,方法)的使用
---恢复内容开始--- 类和对象是java编程中很重要的应该面向对象的一课,实际上可以将类看作对象的载体,它定义了对象所具有的功能.Java是面向对象的语言,因此掌握类与对象是学习Java语言的基础 ...
- java中私有变量和方法_Java 私有变量和私有方法
作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com) 内容索引 访问私有变量 访问私有方法 在通常的观点中从对象的外部访问私有变量以及方法是不允许的,但是 Java ...
- 安卓studio 不能运行java_Android Studio无法执行Java类的main的解决方法
Android Studio升级到哦最新版3.6.1后,新建了个项目,发现无法执行Java类的main方法.试了网上的各种方法,比如切换gradle离线模式.gradle.properties中添加a ...
- linux环境变量设置方法,Linux环境变量设置指南
以配置java环境变量为例 [编辑]修改/etc/profile文件 此法对所有用户生效 在文件末尾加入以下内容: JAVA_HOME=/usr/share/jdk1.5.0_05 PATH=$JAV ...
- java类和对象之包的定义
文章目录 包的基本概述 包的作用 包的定义 导包 例题一 例题二 包的基本概述 在编写 Java 程序时,随着程序架构越来越大,类的个数也越来越多,这时就会发现管理程序中维护类名称也是一件很麻烦的事, ...
- Java类class getClasses()方法及示例
类的类getClasses()方法 (Class class getClasses() method) getClasses() method is available in java.lang pa ...
- Java类class isMemberClass()方法及示例
类的类isMemberClass()方法 (Class class isMemberClass() method) isMemberClass() method is available in jav ...
最新文章
- fabric 简单理解
- select html value属性,HtmlSelect.DataValueField 属性 (System.Web.UI.HtmlControls) | Microsoft Docs...
- linux遍历目录源代码
- java去掉字符串中前后空格函数_Java去除字符串中的空格
- mybatis xml 参数 使用
- 解释一下全连接层CNN中全连接层是什么样的
- 小白学深度之LSTM长短期记忆神经网络——深度AI科普团队
- linux执行定时,linux定时执行 - 乄珍惜
- Spring 下 MyBatis 的基本使用
- mysql 查询时间戳(TIMESTAMP)转成常用可读时间格式
- 微信小程序教程、微信小程序开发资源下载汇总
- 【金融量化分析】#BSM formula 的推导(解随机微分方程)
- 线性插值法(一次插值多项式)的Python程序
- 5G/NR 5G核心网(5GC)之网络功能和实体
- bt_迅雷_种子文件后缀名
- Python(求第五个人岁数)
- Windows系统下安装Linux双系统(硬盘安装)
- LinuxC TCP实现简易聊天室
- 微信小程序导航栏切换页面
- 神州信息郭为:以《数字化的力量》为锚,驶向数字文明的星辰大海
热门文章
- 什么是前端的核心竞争力
- ERROR Plumber found unhandled error: Error in plugin gulp-htmlmin
- CISP笔记 Cyrus
- item_search_img-按图搜索1688商品(拍立淘)接口的接入参数说明
- 地理模块化施工的优点_2019年高考地理微专题09秒解分析影响意义题
- 2022新版nft源码中国元宇宙数字藏品艺术品交易平台源码
- Bzoj1502【NOI2005】月下柠檬树
- mysql怎么样修改schema_MySQL 5.6使用pt-online-schema-change在线修改大表字段长度
- 用java实现建造者模式
- 关于WiFi必须了解的基础知识