专栏中心

EEPW首页 > 专栏 > 芯灵思SinlinxA33开发板安卓开发-java语言基础(四)

芯灵思SinlinxA33开发板安卓开发-java语言基础(四)

发布人:系兄弟来砍我 时间:2018-12-21 来源:工程师 发布文章

从抽象到类

参数传值:方法中最重要的部分之一就是方法的参数,参数属于局部变量,当对象调用方法时,参数被分配内存空间,并要求调用者向参数专递值,即方法被调用时,参数变量必须有具体的值

传值机制:在Java中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的值的拷贝。例如,如果向方法的int型参数x传递一个int值,那么参数x得到的值是传递的值的拷贝。

基本数据类型的传值:对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别 。

 引用类型参数的传值:当参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体。

可变参数:可变参数是指在声明方法时不给出参数列表中从某项直至最后一项参数的名字和个数,但这些参数的类型必须相同。可变参数使用“…”表示若干个参数,这些参数的类型必须相同,最后一个参数必须是参数列表中的最后一个参数。例如: public void f(int x) 那么,方法f的参数列表中,从第1个至最后一个参数都是int型,但连续出现的int型参数的个数不确定。称x是方法f的参数列表中的可变参数的参数代表 

   参数代表可以通过下标运算来表示参数列表中的具体参数,即x[0],x[1]x[m]分别表示x代表的第1个至第m个参数

 

实例成员与类成员:

实例变量和类变量的声明:在之前的学习类的时候我们知道类体中包括成员变量的声明和方法的定义,而成员变量又可以细分为实例变量和类变量。在声明成员变量时,用关键字static给予修饰的称作类变量,否则称作实例变量(类变量也称为static变量,静态变量)。

class Dog {

   float x;      //实例变量

   static int y;   //类变量

  } 

实例变量和类变量的区别:1.不同对象的实例变量互不相同 

我们已经知道,一个类通过使用new运算符可以创建多个不同的对象,这些对象将被分配不同的成员变量。再准确的说,就是分配给不同对象的实例变量占有不同的内存空间,改变其中一个对象的实例变量不会影响其他对象的实例变量。

2.所有对象共享类变量

如果类中有类变量,当使用new运算符创建多个不同的对象时,分配给这些对象的类变量占有相同的一处内存,改变其中一个对象的类变量就会影响其他对象的类变量。

3.通过类名直接访问类变量 

当Java程序执行时,类的字节码文件被加载到内存中,如果该类还没有创建对象,那么类中的实例变量就不会被分配内存。但是,类中的类变量,在该类被加载到内存中时,就分配了相应的内存空间。如果该类创建对象,那么不同对象的实例变量互不相同,即分配不同的内存空间,但是类变量就不再重新分配内存,所有的对象共享类变量,即所有的对象的类变量是相同的一处内存空间,类变量的内存空间直到程序退出运行,才会释放所占有的内存。

实例方法和类方法的定义:类中的方法也可分为实例方法和类方法。方法声明时,方法类型前面不加关键字static修饰的是实例方法、加static关键字修饰的是类方法(静态方法)。

class A {

   int a;

   float max(float x,float y) {  //实例方法

     …

   }

   static float jerry() {       //类方法

     … 

   }

   static void speak(String s) { //类方法

     … 

   }

实例方法和类方法的区别:1.对象调用实例方法

        当对象调用实例方法时,该方法中出现的实例变量就是分配给该对象的实例变量;该方法中出现的类变量也是分配给该对象的变量,只不过这个变量和所有的其他对象共享而已。

2.类名调用类方法

        类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。和实例方法不同的是,类方法不可以操作实例变量,这是因为在类创建对象之前,实例成员变量还没有分配内存。

 


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

第四届飞思卡尔智能车竞赛西部赛区摄像头组第一名

视频 2010-02-01

Ceva推出MotionEngine™ Hex:为智能电视、游戏和物联网界面带来免触控的精确空间控制功能

EDA/PCB 2025-06-27

自动躲避障碍物的智能车

视频 2010-02-01

第四届飞思卡尔智能车竞赛华南赛区摄像头组第二名

视频 2010-02-01

TDK推出封装尺寸1608、业内最高电容(100V)的商业应用积层陶瓷贴片电容器

急问!

dabao 2005-09-09

超越石英钟:BAW时钟如何重新定义ADAS和IVI

长安大学飞思卡尔智能车大赛宣传片

视频 2010-02-01

Bourns推出两款小型NTC热敏电阻系列,提供高精度温度感测与补偿功能

村田首款10µF/50V/0805英寸车规级MLCC正式量产

语音控制智能车

视频 2010-02-01

Sensirion推出带保护盖的新型数字温湿度传感器

Nordic收购Memfault,推出用于互联产品生命周期管理的 “芯片到云”完整平台

意法半导体紧凑型可配置车规负载驱动器具备安全引脚

安谋科技受邀出席夏季达沃斯论坛,共话科技产业创新与全球化发展

Bourns推出全新共模电感系列 专为信号传输线提供噪声抑制方案

更多 培训课堂
更多 焦点
更多 视频

技术专区