1、面对对象语言有哪三个特性?
答:封,继承,多态。
1)封装(encapsulation)
隐藏对象的属性和实现细节,仅对外公开接口,控制程序中属性的读取和修改的访问级别。将对象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。封装就是把类的信息隐藏起来,不允许外部程序直接访问,而是通过这个类提供的方法来实现对内部隐藏信息的访问和操作。
封装的操作:
1.把属性用private修饰符修饰,成员变量只能在当前类中访问。
2.设置public的setName和getName方法,供外部调用。
3.使用public的方法访问。
2)继承
是面向对象软件技术中的一个概念。
继承性的特点:
就是子类继承父类的属性和行为,使得子类对象具有父类相同的属性,相同的行为。子类合一直接访问的非私有的属性和行为。
继承是多态的前提,如果没有继承就没有多态,而这样做也提高了代码的复用性。
继承主要解决的问题就是:共性抽取
继承关系中的特点:
1.子类可以拥有父类的“内容”。
2.子类还可以拥有自己专有的内容。
定义父类的格式:(一个普通的类定义)
public class 父类名称{}
定义子类的格式:
public class 子类名称 extends 父类名称{}
3)多态
多态性的特点:
是指同一行为,具有多个不同表现形式。
多态体现的格式:
父类类型 变量名 = new 子类对象;
变量名.方法名();
extengss继承或者implements实现。是多态性的前提。
2、类名应当遵守怎样的编程风格?
答:遵守标识符规则,名字编写采用“驼峰式”大小写,要见名知义,避免ml、nl等名字,尤其是名字中不要将大小写的英文字母l和数字1相连接,ll和l1很难区分。
3、变量和方法的名字应当遵守怎样的编程风格?
答:
1.变量名
和类名的规定一样,但名字的首单词的首字母要小写,如果变量的名字由多个单词组成,从第二个单词开始的其他单词的首字母使用大写。
2.方法名
答:和变量名的命名一样。
4、类体内容中声明成员变量是为了体现对象的属性还是行为?
答:对象的属性
5、类体内容中定义的非构造方法是为了体现对象的属性还是行为?
答:对象的行为
6、什么时候使用构造方法?构造方法有类型吗?
答:用类创建对象的时候需要使用构造方法;构造方法没有类型。
7、类中的实例变量在什么时候会被分配内存空间?
答:声明之后,在用new关键字创建实例的时候才分配内存。
8、什么叫方法的重载?构造方法可以重载吗?
答:
1.方法的重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数不同,或者参数的个数不同,或者参数的类型不同。
2.方法的构造可以重载。
9、类中的实例变量在什么时候可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?
答:
1.类中的实例方法可以操作类变量。
2.类方法不可以操作实例变量。
10、类中的实例方法可以用类名直接调用吗?
答:类中的实例方法不可以用类名直接调用。
11、简述类变量和实例变量的区别
答:
1.类变量在类加载时分配内存的;实例变量在创建对象时分配内存的;类变量在程序退出时释放内存;对象不存在实例变量就不存在了。
2.类变量被所有变量共享,即同一类的所有对象共享此类的类变量;实例对象为每个对象独有;操作自己的实例对象而不会影响其他对象。
3.类变量一般通过类名来调用。
12、this关键字代表什么?this可以出现在类方法中吗?
答:
1.代表调用当前方法的对象
2.不可以