1、类和对象的关系?类定义了一种新的数据类型,可以用新类型来创建该类型的对象。类(class)是对象(object)的模板,而对象是类的一个实例。2、定义一个类需要包含什么元素?一个类包含属性和方法。该类具有哪些特征使用属性表示,该类具有哪些行为使用方法来表示。3、如何使用this关键字?This指向自己的引用,即当前方法所在的对象。它的一个主要作用是要将自己这个对象当做参数,传送给别的对象中的犯法。或者在类定义时使用this来引用自己的属性或方法。4、类体中的方法包含哪些分类?按返回值分:有返回值、无返回值按参数分:无参数、有参数(单个参数,多个参数)按范围或功能分:实例方法、类方法、构造方法5.什么时候为类中的实例变量分配内存空间?在使用类创建实例对象时会为其分配空间。(通过new关键字和构造函数为其实例化的时候)6.什么叫方法的重载?构造方法可以重载吗?一个类中可以有多个方法具有相同的名称,但这些犯法的参数必须不同,即或者是参数个数不同,或者是参数的类型不同,或者是参数的顺序不同。构造方法可以重载,而且构造方法的重载是方法中使用频率最高的一种。7.简述类变量和实例变量的不同?(1)不同对象的实例变量将分配不同的内存空间,实例变量则属性独有,改变某一个对象的值不影响其他对象;而所有对象的类变量占用同一块内存空间,类变量是所有对象共有的,改变其中一个对象的值,其他对象得到的就是改变后的结果。(2)类变量在类被加载到内存是就为其分配内存空间,而实例变量在使用new创建对象时,才为其分配内存空间;(3)类变量可以通过对象和类名访问,而实例变量只能通过对象访问。(4)类变量通过static关键字修饰,实例变量不需要。8.通过Studentstu;语句定义一个用户类型变量时,是否能在内存中创建对象?通过Studentstu;语句仅仅声明了一个类型为Student,名称为stu的引用变量。这个引用变量具有指向一个Student对象的潜在可能,但还没有指向一个Student对象。如果要想使stu指向一个全新的Student对象,在运行时用特定的java关键字new在JVM存储空间中分配Student对象。即通过赋值语句将引用变量和对象关联起来,Studentstu=newStudent()。如何创建一个对象?声明该类型的变量,创建该类型的对象,并将对象的引用赋给变量Peoplep=newPeople();2、类变量与实例变量的区别?类变量在类加载是分配内存的;实例变量在创建对象时分配内存的;类变量在程序退出时释放内存;对象不存在实例变量就不存在了。类变量被所有对象共享,即同一类的所有对象共享此类的类变量,实例变量为每个对象独有;操作自己的实例变量而不会影响其他对象类变量一般通过类名来调用。3、类方法与实例方法的区别?类加载时,类方法被分配入口地址;实例方法是在第一个对象创建时被分配入口地址类方法一般通过类名来调用在类方法中不能使用this关键字;应为this代表当前对象;类方法是在类加载时就存在而此时对象还不存在。4、静态块有什么特点?5、参数传递有几种形式?按值传参、按引用传参6、构造函数的作用和特点作用:在创建对象时,对新构造出来的对象进行初始化。特点:1)构造函数的方法名与类同名;2)构造函数是对象在实例化是由系统自动调用;3)构造函数没有返回类型,并且也不用void关键字修饰;4)如果在定义类时没有定义构造函数,则编译器会自动插入一个无参且方法体为空的构造函数;5)如果在定义类时显式地定义了一个有参构造函数,则编译器不再提供无参的默认构造函数。6)构造函数的重载是方法重载中最为频繁的一种方式。1、封装的概念是什么?将数据连同函数捆绑在一起,形成新的类型,这被称为封装。2、访问控制里面四个关键字是什么?简要说四者的访问权限关系?Public:任何其他类,对象只要可以看到这个类的话,那么它就可以存取变量的数据或使用方法Protected:同一类,同一包可以使用。不同包的类要使用,必须是该类的子类。Private:不允许任何其他类存取和调用Friendly(default,前边没有修饰符的情况):在同一程序包中出现才可以直接使用它的数据和方法3、封装的好处是什么?封装有助于提高程序的灵活性,便于代码的维护和修改,们可以有效地避免修改代码而造成“牵一发而动全身”的问题。而且,杂成员变量被访问的同时还可以避免错误,提高程序的健壮性。在代码发生变化时可以通过修改访问方法,使得修改不影响外界的访问。通过隐藏设计细节,可以把对代码修改造成的负面影响缩小到最小的范围内,这样就可以写出可维护性和可扩展性高的代码4、在Java中,封装设计过程中所需要遵循的规则是什么?1.用访问控制修饰符保护成员变量,通常是private;2.建立公有的访问方法,强制调用代码通过这些方法访问成员变量。或1.成员变量私有化2.为每一个私有化的成员变量建立一组公有的getter或setter方法简答题1、什么是继承?继承性是面向对象程序设计语言的另一种基本特征,通过继承可以实现代码的重用。继承而得到的类为子类,被继承的类为父类,父类包括所有直接或间接被继承的类。子类可继承父类中的变量及方法,也可定义其自身特有的变量及方法。Java中不支持多重继承。2、Java中如何实现继承?通过在类的声明中加入extends来创建一个类的子类。ClassSubClassextendsSubClass{}3、Java中,有继承关系时,变量隐藏的原则?子类中变量名与继承自父类的变量名相同时,则继承自父类的变量将被隐藏。4、Java中,有继承关系时,方法重写原则?重写后的方法不能比被重写的方法有更严格的访问权限(可以相同)改写后的方法不能比重写的方法产生更多的例外(异常)5、Java中,super关键字的作用?调用构造方法:Super()必须是子类构造函数第一个执行的语句,如果super()没有被用到,每个超类的默认的或无参数的构造函数将被执行。调用被隐藏变量及方法:可通过super关键字调用被隐藏的父类中的变量及方法。6、Java中,是否支持多继承?不支持多继承,允许多层继承7、Java中,请说明final关键字的使用?final在类之前表示该类是最终类,表示该类不能再被继承。Final在方法之前表示该类方法是最终方法,该方法不能被任何派生的子类覆盖。Final在变量之前表示变量的值在初始化之后就不能再改变,相当于定义了一个常量8、什么叫成员变量的隐藏?对于成员变量来说,当子类本身具有与继承自父类的某个成员变量名称相同的成员变量时,便构成了成员变量的隐藏。其含义是,在子类中直接调用该成员变量时,将调用的是子类中本身具有的成员变量,而不是从父类继承的成员变量。简答题1、什么是方法的重载?方法重载的规则是什么?方法重载指的是在同一个类里面,有两个或两个以上具有相同的方法名,不同参数序列的方法。规则:重载的方法参数列表各不相同,体现在参数的个数,类型,顺序的不同重载方法的返回值类型,访问限制没有特别的要求,可以相同也可以不同2、重载方法是如何进行匹配的?在方法调用进行匹配的时候,首先选择直接匹配的方法;如果没有则将参数进行提升转换后再匹配方法,总是匹配最接近的方法对于基本数据类型而言,就是按照基本数据类型间的自动转换关系,将传递的参数进行自动转换,并寻找最匹配的一个方法对于对象应用类型而言,则按照继承树向上转型的方式,将传递的参数进行自动转换,并寻找最匹配的一个方法3、一个引用类型的变量可以指向哪些对象?一个引用类型的变量可以指向由其本类所构造出来的对象,还可以指向由其子类及子孙类所构造出来的对象。4、什么是多态?二、简答题1、什么是抽象类?请说出抽象类所具有的特点?使用abstract修饰的类叫抽象类特点:1.抽象类必须被继承2.抽象类不能直接实例化,它只能作为其他类的超类,这一点与最终类(final类)正好相反。2、什么是抽象方法?抽象方法的特点?抽象方法:用abstract来修饰一个方法时,该方法叫抽象方法,只有方法声明,没有方法体。特点:抽象方法必须被重写抽象方法只有声明,不能有实现定义了抽象方法的类必须是抽象类3、什么是接口?使用接口的好处?接口(interface)就是方法定义和常量值的集合。从语法上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义(抽象方法),而没有方法的实现。特点:通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系通过接口可以指明多个类需要实现的方法通过接口可以了解对象的交互界面,而不需要了解对象所对应的类4、请写出抽象类、接口的相同点和不同点?相同点:都不能被实例化都必须通过其他类实现才能使用不同点:抽象类是类,其中可包含变量及(抽象、非抽象)方法的定义接口实质并不是类,其中只包含类常量及抽象方法的定义