1.类与对象的区别?
1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。 2,对象是类的一个实列。它是一个实实在在存在的东西。 3,类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。 4,对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。
2.如何定义一个类?类的结构是怎么样的? 定义类实际上就是定义类的属性与方法。用户定义一个类实际上就是定义一个新的数据类型。
/*类的一般结构
[类修饰符]class 类名称
{
[修饰符]数据类型 成员变量名称;
[修饰符] 返回值的数据类型 方法名(参数1,参数2.参数n){
语句序列;
return[表达式];
}
}
*/
3.定义一个类时所使用的修饰符有哪些?各修饰符的功能是什么?是否可以混用? public 将一个类声明为公共类,它可以被任何对象访问,一个程序的主类必须是公共类 abstract 将一个类声明为抽象类,没有实现的方法,需要子类提供方法的实现 final 将一个类声明为最终类即非继承类,表示它不能被其他类所继承 friendly 友元类型,默认的修饰符,只有在相同包中的对象才能使用这样的类 一个类可以有多个修饰符,且无先后顺序之分,abstract和final相互对立,所以不能同时应用在一个类的定义中。
4.成员变量和局部变量的区别有哪些? (1)从语法形式上看,成员变量是属于类的,而局部变量是在方法中定义的变量或方法的参数;成员变量可以被public、private、static等修饰符所修饰,而局部变量则不能被访问控制修饰符及static所修饰;成员变量和局部变量都可以被final所修饰。 (2)从变量在内存中的存储方式上看,成员变量是对象的一部分,而对象是存在于堆内存,而局部变量是存在于栈内存的。 (3)从变量在内存中的生存时间上看,成员变量是对象的一部分,它随对象的创建而存在,而局部变量随着方法的调用而产生,随着方法调用的结束而自动消失。 (4)成员变量如果没有被赋初值,则会自动以类型的默认值赋值(有一种情况例外,被final修饰但没有被static修饰的成员变量必须显示地赋值);而局部变量则不会自动赋值,必须显示赋值后才能使用。
5.对象的成员如何表示? <对象名>.<对象成员>
6. 在成员变量或成员方法前加上关键字“this”表示什么含义? 如果要强调是“对象本身的成员”的话,则可以在成员名前面加this关键字,即“this.成员名”。此时this即代表调用此成员的对象。
7.什么是方法的返回值,返回值在类的方法里的作用是什么?
一个方法如果没有返回值,则在该方法的前面用void来修饰;如果返回值的类型为简单数据类型,只需在声明方法的前面加上相应的数据类型即可;同理,若需方法返回一个数组,则必须在该方法的前面加上数组类型的修饰符。
8.在方法调用中,使用对象作为参数进行传递时,是“传值” 还是“传址”? 当参数是基本数据类型时,则是传值方式调用,而当参数是引用类型的变量时,则是传址方式调用。
9.什么叫匿名对象?一般在什么情况下使用匿名对象? 当一个对象被创建之后,在调用该对象的方法时,也可以不定义对象的引用变量,而直接调用这个对象的方法,这样的对象叫做匿名对象。 使用匿名对象通常有如下两种情况: (1)如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。 (2)将匿名对象作为实参传递给一个方法调用。