1、在 Java 中,存放字符串常量的对象属于( )类对象。B
A Character B String C StringBuffer D Vector
2、已知如下类定义: 如下哪句可以正确地加入子类中?D
class Base {
public Base (){
//...
}
public Base ( int m ){
//...
}
public void fun( int n ){
//...
}
}
public class Child extends Base{
// member methods
}
A private void fun( int n ){ //...}
B void fun ( int n ){ //... }
C protected void fun ( int n ) { //... }
D public void fun ( int n ) { //... }
重写
- 方法名、参数、返回值相同。
- 子类方法不能缩小父类方法的访问权限。
- 子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
- 存在于父类和子类之间。
- 方法被定义为final不能被重写。
重载
- 参数类型、个数、顺序至少有一个不相同。
- 不能重载只有返回值不同的方法名。
- 存在于父类和子类、同类中。
3、面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性
4、成员变量和局部变量的区别:
成员变量:
- 成员变量定义在类中,在整个类中都可以被访问。
- 成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
- 成员变量有默认初始化值。
局部变量:
- 局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
- 局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
- 局部变量没有默认初始化值
成员变量和类变量的区别:
1.两个变量的生命周期不同
成员变量随着对象的创建而存在,随着对象的回收而释放。
静态变量随着类的加载而存在,随着类的消失而消失。
2.调用方式不同
成员变量只能被对象调用。
静态变量可以被对象调用,还可以被类名调用。
3.别名不同
成员变量也称为实例变量。
静态变量也称为类变量。
4.数据存储位置不同
成员变量存储在堆内存的对象中,所以也叫对象的特有数据。
静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。
成员变量和静态变量的区别:
1.成员变量所属于对象。所以也称为实例变量。
静态变量所属于类。所以也称为类变量。
2.成员变量存在于堆内存中。
静态变量存在于方法区中。
3.成员变量随着对象创建而存在。随着对象被回收而消失。
静态变量随着类的加载而存在。随着类的消失而消失。
4.成员变量只能被对象所调用 。
静态变量可以被对象调用,也可以被类名调用。
5、Java提供了4种访问控制符,主要用于控制其他类是否可以访问某一类中的属性或方法,从而实现数据封装。
四种访问控制符的权限大小(由大到小)为public(公共)、protected(保护)、default(默认)、 private(私有)。
private(私有):当类中属性或方法被private修饰时,表示此成员或方法只能被自己类中的方法使用,而不能被外部类或对象直接使用。
default(默认):具有包访问权限,如果类中属性或方法不使用public,protected,privete修饰符修饰时,则说明其具有包访问权限,具有包访问权限的属性或方法既可以被自己类中的方法使用也可以被同一包下的其他类使用,但不能被其他包中的类使用。
protected(保护):具有子类访问权限。如果类中属性或方法被protected修饰符修饰,则此类中属性或方法可以被同一包下的类使用,也可以被不同包下的子类使用,但不能被不同包下的其他类使用。
public(公共):具有公共访问权限。如果类中的属性或方法被public修饰,则此类中的属性或方法可以被任何类调用。
6、假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?()C
public class A
{
public int i;
static String s;
void method1(){}
static void method2(){}
}
A System.out.println(a.i); B a.method1(); C A.method1(); D A.method2();
static关键词修饰的变量或方法可以通过类名直接调用,而非静态的变量或方法无法通过类名直接调用。
7、下面代码将输出什么内容:()B
public class SystemUtil{
public static boolean isAdmin(String userId){
return userId.toLowerCase()=="admin";
}
public static void main(String[] args){
System.out.println(isAdmin("Admin"));
}
}
<