面向对象基础==方法重载及继承09/11
2016-09-11 20:00
288 查看
学习报告
1、什么是重载?
解答:重载发生在一个类中,两个方法名相同,参数列表不同(包括参数类型,个数,顺序。)。与是否是返回类型的方法无关。调用方法时,根据方法的参数来决定调用那个重载方法。
2、什么是构造方法?构造方法的作用是什么?
解答:构造方法的方法名与类名相同,没有返回类型(一般也不加静态关键字修饰),利用构造方法可以产生该类的对象。
作用:1.为对象分配空间 2.初始化成员变量 3.返回该对象的引用
说明:如果一个类没有定义构造方法,虚拟机会默认分配一个无参构造方法给该类。如果一个类定义了构造方法,这时默认的无参构造方法就会消息。构造方法在产生对象的时候调用,通常使用构造方法做一些初始化动作。
3、说说下面的方法哪些重载了构造方法?
publicclass Test{
public Test(int x){}
}
a、public Test(int y){} 不是
b、public Test(String y){} 是
c、public void Test(Stringx){} 不是
d、public int Test(inty,String x){} 是(不是)
e、public Test(int y,Stringx){} 不是(是)
f、public Test(String x,inty){} 是
4、说出代码执行结果。
publicclass Test{
public int x = 8;
public void move(int x){
System.out.println(x);
System.out.println(this.x);//打印成员变量
}
public static void main(String[] args){
Test t = new Test();
t.move(6);
}
}
执行结果是:6和8
5、说出下列代码执行结果
a、public class Test{
public static void main(String[] args){
int j;
System.out.println(j);
}
}
执行结果:整形变量j没有初始化,编译报错(变量使用前必须初始化,编译出错)
b、public class Test{
static int j;
public static void main(String args){
System.out.println(j);
}
}
执行结果:整形变量被声明为静态成员变量,被赋值为0,打印出为0(编译通过,运行时找不打程序入口点)
c、public class Test{
int j;
public int getNum(){
return this.j;
}
public static void main(String[] args){
//Test t =new Test();调用时,会对属性初始化
System.out.println(getNum());
}
}
执行结果:静态的方法不能直接调用成员方法,直接报错(编译错误,静态方法不能直接调用成员方法与成员变量)
d、
public class Test{
public String x;
public static void main(String[] args){
Test t= new Test();
String y = "";
System.out.println(t.x.equals(y));
}
}
执行结果:抛出空指针异常,(编译正常,运行错误,构造方法会初始化成员变量,X属性是引用类型,所有初始化为NULL,当对null调用方法或者属性时,会抛出空指针异常)
6、什么继承?继承有什么优点?
解答:通俗的讲,观察我们要使用的类,确定他们之间在属性与行为具有的相同点与单独的类中差异的部分,将这些类中的相同属性或行为抽象到一个父类中,这样便于子类进行方法与属性的重用。
优点:1.重合的代码抽象到父类中,减少代码的繁琐与重写。
2. 便于子类进行方法与属性的重用。
3.对于不同行为与特征,在子类中可以重新定义。
4.父类的特征与行为可以在子类直接调用==通过继承的方式
7、继承使用什么关键字?
Extends
8、一个类可以同时继承多个类吗?所有类的父类是什么?
解答:不行,在C++可以,但是Java中不行。所有类的父类是Object
1、什么是重载?
解答:重载发生在一个类中,两个方法名相同,参数列表不同(包括参数类型,个数,顺序。)。与是否是返回类型的方法无关。调用方法时,根据方法的参数来决定调用那个重载方法。
2、什么是构造方法?构造方法的作用是什么?
解答:构造方法的方法名与类名相同,没有返回类型(一般也不加静态关键字修饰),利用构造方法可以产生该类的对象。
作用:1.为对象分配空间 2.初始化成员变量 3.返回该对象的引用
说明:如果一个类没有定义构造方法,虚拟机会默认分配一个无参构造方法给该类。如果一个类定义了构造方法,这时默认的无参构造方法就会消息。构造方法在产生对象的时候调用,通常使用构造方法做一些初始化动作。
3、说说下面的方法哪些重载了构造方法?
publicclass Test{
public Test(int x){}
}
a、public Test(int y){} 不是
b、public Test(String y){} 是
c、public void Test(Stringx){} 不是
d、public int Test(inty,String x){} 是(不是)
e、public Test(int y,Stringx){} 不是(是)
f、public Test(String x,inty){} 是
4、说出代码执行结果。
publicclass Test{
public int x = 8;
public void move(int x){
System.out.println(x);
System.out.println(this.x);//打印成员变量
}
public static void main(String[] args){
Test t = new Test();
t.move(6);
}
}
执行结果是:6和8
5、说出下列代码执行结果
a、public class Test{
public static void main(String[] args){
int j;
System.out.println(j);
}
}
执行结果:整形变量j没有初始化,编译报错(变量使用前必须初始化,编译出错)
b、public class Test{
static int j;
public static void main(String args){
System.out.println(j);
}
}
执行结果:整形变量被声明为静态成员变量,被赋值为0,打印出为0(编译通过,运行时找不打程序入口点)
c、public class Test{
int j;
public int getNum(){
return this.j;
}
public static void main(String[] args){
//Test t =new Test();调用时,会对属性初始化
System.out.println(getNum());
}
}
执行结果:静态的方法不能直接调用成员方法,直接报错(编译错误,静态方法不能直接调用成员方法与成员变量)
d、
public class Test{
public String x;
public static void main(String[] args){
Test t= new Test();
String y = "";
System.out.println(t.x.equals(y));
}
}
执行结果:抛出空指针异常,(编译正常,运行错误,构造方法会初始化成员变量,X属性是引用类型,所有初始化为NULL,当对null调用方法或者属性时,会抛出空指针异常)
6、什么继承?继承有什么优点?
解答:通俗的讲,观察我们要使用的类,确定他们之间在属性与行为具有的相同点与单独的类中差异的部分,将这些类中的相同属性或行为抽象到一个父类中,这样便于子类进行方法与属性的重用。
优点:1.重合的代码抽象到父类中,减少代码的繁琐与重写。
2. 便于子类进行方法与属性的重用。
3.对于不同行为与特征,在子类中可以重新定义。
4.父类的特征与行为可以在子类直接调用==通过继承的方式
7、继承使用什么关键字?
Extends
8、一个类可以同时继承多个类吗?所有类的父类是什么?
解答:不行,在C++可以,但是Java中不行。所有类的父类是Object
相关文章推荐
- Javascript乱弹设计模式系列(0) - 面向对象基础以及接口和继承类的实现
- JAVA面向对象基础:继承、变量隐藏、方法重写、包、修饰符、this、super
- 黑马程序员—4—Java基础: 面向对象继承学习笔记和学习心得体会
- 【java基础】--(2)面向对象特征之概念、封装、继承
- Java基础(极客)——11、Java面向对象中引用的传递
- 1.面向对象基础(封装、继承、多态、抽象类)0711
- 面向对象基础(继承类,抽象方法,接口,委托和事件)
- 面向对象基础知识(二)-类的继承
- Java基础视频教程第07天_面向对象之继承、抽象、接口
- .Net学习笔记----2015-07-21(C#基础复习04,面向对象语法和继承复习)
- [零基础学JAVA]Java SE面向对象部分-11.面向对象基础(06) 推荐
- c++基础 之 面向对象特征一 : 继承
- 面向对象基础之二封装继承多态
- c++ 面向对象基础Test——继承、重载、slice赋值
- [零基础学JAVA]Java SE面向对象部分-09.面向对象基础(04)
- Javascript乱弹设计模式系列(0) - 面向对象基础以及接口和继承类的实现
- 黑马程序员_java编程基础09面向对象
- JavaSE 拾遗(5)——JavaSE 面向对象程序设计语言基础(5)...继承和多态
- .NET面向对象基础静态,继承
- Java基础(极客)——09、Java面向对象中类与对象的概念和使用