栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java第四章陈述题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java第四章陈述题

1.对象与对象引用的区别是什么? 请举例说明

1.创建对象:

new FighterPlane();//对象分配在堆heap上

2.声明一个对象引用:

FighterPlane fp;//fp作为局部变量分配在栈上,fp也称为引用变量

3.初始化对象引用:

fp=new FighterPlane();//fp指向实际对象

"="的意思是将对象的地址赋给引用fp。也就是说,fp里保存的,实际上是一个对象地址,通过fp即可操纵该对象。

2.对象作为参数传递的特点是什么?请举例说明

对象是引用传递,当对象作为参数传递时,传递的是对象的地址。

class IntClass {  
   int value;  
}   
 
public class RunIntClass {  
   public static IntClass getInstance() { 
      //在方法中产生对象
      IntClass s = new IntClass ();
      s.value=8;
      return  s; //返回对象引用
   } 
   public static void main(String [] args) { 
      IntClass a = getInstance();
      System.out.println(a.value);
   }
}

3.对象初始化顺序是怎样的?请举例说明

创建对象时的初始化顺序:

  • 系统会对数据成员进行默认初始化
  • 执行数据成员定义处的初始化语句
  • 调用构造方法为数据成员指定初值
class IntClass{
    int value;//自动初始化 默认值为0
   //int value=5; 在定义时指定初值
}
 
public IntClass(){}
 
public IntClass(){
    value=val;
}
 
public class IntClassConstructor{
    public static IntClass getinstance(){
            IntClass s=new IntClass(8);
            return s;
        }
    public static void main(String args[]){
        IntClass a=new IntClass();
        System.out.println(a.value);
        a=getinstance();
        System.out.println(a.value);
    }
 
}

4.类的static字段与非static字段的区别是什么?什么场景应该使用static修饰符?请举例说明

static修饰数据成员:

用static修饰符修饰的数据成员是不属于任何一个类的具体对象,而是属于类的静态数据成员。

它被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中。因此,一个类的任何对象访问它时,存取到的都是相同的数值。

class IntClass{
    static int num=1;//静态数据成员初始化
    //int value;//自动初始化,默认值为0
    int value=5;//定义时指定初值
    public IntClass(){}
    //定义构造方法将属性value初始化
    public IntClass(int val){
        value = val;
    }
}
public class IntClassConstructor{
    public static IntClass getInstance(){
        //调用构造方法
        IntClass s=new IntClass(8);
        return s;
    }

    public static void main(String args[]){
        System.out.println(IntClass.countNum());
        IntClass a=new IntClass();
        System.out.println(a.value);
        IntClass.num++;//静态数据成员自增
        a=getInstance();
        a.num++;//静态数据成员自增
        System.out.println(a.num);
    }
}
//5 3

5.Java中final修饰符都有什么作用?请举例说明

1.final修饰属性,则属性为常量;

2.final修饰方法,则该方法在子类当中不能被覆盖。

3.final修饰一个类,表明这个类不能被继承。

6.Java中float[10] arr; 语句正确么?为什么?

不正确

系统无法识别该语句给arr分配内存空间。

正确的建立容量为10的float数组的方法是:
首先进行数组引用声明float[]arr;

接下来数组引用与新创建的数组对象相关联arr=new float[10];

或者同时进行float[]arr=new float[10];

7.Java数组元素类型为基本数据类型和引用类型时,有什么不同?请举例说明

数组元素为基本数据类型时

初始化语句的作用是给数组分配空间,创建数组对象,并将每个单元初始化为默认值0

int[] arr = new int[10];//产生一个有10个单元,类型为int的数组对象,所有单元初始值为0


数组元素为引用类型时

引用类型数组的数组元素是引用,因此情况变得更加复杂:每个数组元素里存储的还是引用,它指向另一块内存,这块内存里存储了有效数据。

String[] example = new String[10];//创建对象引用数组
for(String x:example){
	System.out.println(x);//输出结果为10个null


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/318585.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号