类,封装,包

简介: 类,封装,包

一级目录

1:下面代码的运行结果是()

public static void main(String[] args){
  String s;
  System.out.println("s="+s);
}

A.代码编程成功,并输出”s=”

B.代码编译成功,并输出”s=null”

C.由于String s没有初始化,代码不能编译通过。

D.代码编译成功,但捕获到NullPointException异常

本题中的代码不能编译通过,因为在Java当中局部变量必须先初始化,后使用。所以此处编译不能通过!

2:以下哪项说法是正确的?

A.public关键字只能修饰类名

B.public关键字只能修饰方法

C.public关键字只能修饰成员变量

D.以上说法都不对

public只是一个访问修饰限定符,可以修饰类名,接口,方法,成员变量等。所以ABC错,D正确。

3:以下代码在编译和运行过程中会出现什么情况

public class TestDemo{
  private int count;
  public static void main(String[] args) {
    TestDemo test=new TestDemo(88);
    System.out.println(test.count);
  }
   TestDemo(int a) {
     count=a;
  }
}

**观察代码当执行:

TestDemo test = new TestDemo(88);

的时候,会先执行构造方法,将88的值,赋值给count,所以最终输出的值是88.

4:在JAVA中,假设A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法和语句格式应该为()

A.this.A(x)

B.this(x)

C.super(x)

D. A(x)

this共有3种使用方式:

this.data 访问当前对象的实例成员变量

this.func() 访问当前对象的实例成员方法

this(参数列表) 访问当前对象的构造方法

此处在当前类当中,调用构造方法A(int a),使用this(x);的方式,所以选择B

5:如下代码的输出结果是什么?

public class Test { 
    public int aMethod(){
        static int i = 0;
        i++; 
        return i;
    } 
public static void main(String args[]){
    Test test = new Test(); 
    test.aMethod(); 
    int j = test.aMethod();
    System.out.println(j);
    } 
}

A.0

B.1

C.2

D.编译失败

在方法当中定义的变量是局部变量,而静态的变量属于类变量。随着类的加载而被创建,而局部变量是调用该方法的时候,才创建的。
所以,此时两种变量的性质是冲突的。Java当中不允许定义局部的静态变量

6:当你编译和运行下面的代码时,会出现下面选项中的哪种情况?

public class Pvf{
    static boolean Paddy;
    public static void main(String args[]){
        System.out.println(Paddy);
    }
}

A.编译时错误

B.编译通过并输出结果false

C.编译通过并输出结果true

D.编译通过并输出结果null

在Java当中,成员变量没有赋初值的时候,会有默认的初始值。基本类型是对应的0值。如:int是0,boolean是false,char类型是’\u0000’,引用类型是null,如String。

7:成员变量的调用:

public class Test{
  private float f=1.0f;
  int m=12;
  static int n=1;
  public static void main(String args[]){
    Test t=new Test();
  }
}

如下哪些在main函数中使用是正确的()

A.t.f = 3.0

B.this.n

C.Test.m

D.Test.n

**

A:f是float类型,3.0默认是double,所以此时不能赋值

B:n是静态的,需要通过类名访问,不能通过this访问,this代表当前对象的引用,但是静态的成员变量不属于this。

C:m是实例成员变量,需要通过对象来进行调用。

D:正确

故:答案选D**

8:下面哪一项不是 java 类访问控制关键字

A.public

B.this

C.private

D.protected

**Java中的访问修饰符有3个:private,public,protected,但是当定义一个成员变量的时候,没有写这3个任意一个访问修饰符的时候,此时的权限是默认权限。

**

public class Test {
    public int age;
    private String name;
    protected String sex;
    String weight;//默认权限
}

9:关于以下程序代码的说明正确的是()

public class HasStatic {// 1
  private static int x = 100;// 2
  public static void main(String args[]) {// 3
    HasStatic hsl = new HasStatic();// 4
    hsl.x++;// 5
    HasStatic hs2 = new HasStatic();// 6
    hs2.x++;// 7
    hsl = new HasStatic();// 8
    hsl.x++;// 9
    HasStatic.x--;// 10
    System.out.println(" x=" + x);// 11
  }
}

A.程序通过编译,输出结果为:x=102

B.程序通过编译,输出结果为:x=103

C.10行不能通过编译.因为x星私有静态变量

D.5行不能通过编译.因为引用了私有静态变量

1: 本题中的静态成员变量x,属于类变量,只有一份。所有对x的操作针对的都是同一份。

2: 静态成员变量的访问需要通过类名访问,这是正确的访问方式本题中虽然使用了对象引用访问,但是不会报错,我们不建议这样访问,但不是错误,所以,不会编译报错。

综合以上2点,得出结论:本题可以正常通过编译和运行,输出结果是102。

10:代码块执行顺序

public class Test{
    static int cnt = 6;
    static{
        cnt += 9;
    }
    public static void main(String[] args){
        System.out.println("cnt = " + cnt);
    }
    static{
        cnt /=3;
    };
}
本题考察的是代码块的执行顺序。带代码中存在代码块和构造方法的时候。执行顺序为:
1.静态代码块
2.实例代码块
3.调用的对应的构造方法
第2种情况:当存在相同类型的代码块和成员变量的时候,需要看定义顺序执行。
public class Test{
    static int cnt = 6;//1
    static{
        cnt += 9;//2
    }
    public static void main(String[] args){
        System.out.println("cnt = " + cnt);
    }
    static{
        cnt /=3;//3
    };
}
本题中先执行注释1处,再执行注释2处,此时结果变为了15,再执行注释3处,cnt = 5;

11:关于包的说法, 下列错误的是:( )

A.包是一组类的集合

B.包能防止类的名字冲突

C.import 语句能够导入一个指定的包

D.import static 能够导入一些静态方法

.import 语句不能导入一个指定的包

目录
相关文章
|
编译器 C++
【c++11】新的类功能和可变参数包
【c++11】新的类功能和可变参数包
|
Java 数据挖掘 数据库
封装的理解
封装的理解
107 0
|
3月前
|
数据安全/隐私保护 C语言 C++
C++(七)封装
本文档详细介绍了C++封装的概念及其应用。封装通过权限控制对外提供接口并隐藏内部数据,增强代码的安全性和可维护性。文档首先解释了`class`中的权限修饰符(`public`、`private`、`protected`)的作用,并通过示例展示了如何使用封装实现栈结构。接着介绍了构造器和析构器的使用方法,包括初始化列表的引入以及它们在内存管理和对象生命周期中的重要性。最后,通过分文件编程的方式展示了如何将类定义和实现分离,提高代码的模块化和复用性。
|
6月前
什么是封装?为什么是要封装?
什么是封装?为什么是要封装?
150 0
|
7月前
|
安全 C#
C#封装详解
C#封装详解
91 0
|
7月前
|
安全 数据安全/隐私保护
什么是封装?
什么是封装?
50 0
|
7月前
|
存储 Java C语言
类的封装和包(JAVA)
类的封装和包(JAVA)
78 0
|
程序员
封装(了解一下)
封装(了解一下)
99 0