10.21/22作业
来源:互联网 发布:火炬之光2mac 编辑:程序博客网 时间:2024/05/29 05:05
day08
1:教练和运动员案例(学生分析然后讲解)
乒乓球运动员和篮球运动员。
乒乓球教练和篮球教练。
为了出国交流,跟乒乓球相关的人员都需要学习英语。
请用所学知识:
分析,这个案例中有哪些抽象类,哪些接口,哪些具体类
乒乓球运动员和篮球运动员。
乒乓球教练和篮球教练。
为了出国交流,跟乒乓球相关的人员都需要学习英语。
请用所学知识:
分析,这个案例中有哪些抽象类,哪些接口,哪些具体类
package org.lemon.Test;
public interface StudyEnglish {
public static void main(String[] args) {
StudyEnglishPingPangCoach seppc = new StudyEnglishPingPangCoach();
seppc = new StudyEnglishPingPangCoach("张三", 40) ;
System.out.println(seppc.getName()+"---"+seppc.getAge());
seppc.exerise() ;
seppc.run() ;
seppc.play() ;
seppc.playGame() ;
StudyEnglishPingPangAthlete seppa = new StudyEnglishPingPangAthlete();
seppa = new StudyEnglishPingPangAthlete("李四", 20) ;
System.out.println(seppa.getName()+"---"+seppa.getAge());
seppa.exerise() ;
seppa.run() ;
seppa.play() ;
seppa.playGame() ;
}
}
public static void main(String[] args) {
StudyEnglishPingPangCoach seppc = new StudyEnglishPingPangCoach();
seppc = new StudyEnglishPingPangCoach("张三", 40) ;
System.out.println(seppc.getName()+"---"+seppc.getAge());
seppc.exerise() ;
seppc.run() ;
seppc.play() ;
seppc.playGame() ;
StudyEnglishPingPangAthlete seppa = new StudyEnglishPingPangAthlete();
seppa = new StudyEnglishPingPangAthlete("李四", 20) ;
System.out.println(seppa.getName()+"---"+seppa.getAge());
seppa.exerise() ;
seppa.run() ;
seppa.play() ;
seppa.playGame() ;
}
}
2:final关键字可以干什么?有什么特点?
final如果修饰一个类,该类不能被继承. final修饰类的成员变量该成员变量的值不可修改。
final如果修饰一个类,该类不能被继承. final修饰类的成员变量该成员变量的值不可修改。
3:final关键字的面试题?
A:修饰局部变量 基本数据类型:如果局部变量是一个基本数据类型,那么被final修饰,基本数据类型的变量的值不能再改变!
引用数据类型:如果用final修饰引用类型的变量,那么它不能在重写分配堆内存空间,但是可以改变可以成员变量的值.
B:初始化时机 在对象创建之前都可以.
a.构造代码块中可以进行初始化
b.构造方法中可以进行初始化
c.定义成员变量的时候,可以直接进行初始化.
4:多态是什么,前提是什么?
多态:一个事物在不同时刻体现出来的不同状态 条件1:必须有继承关系(如果没有继承关系,谈不上多态!)
条件2:必须有方法重写子类出现了父类一样的 方法声明
条件3:有父类引用指向子类对象:向上转型 Fu f = new Zi() ;
5:多态中成员访问的特点?
成员变量 : 编译看左边,运行看左边
成员方法 : 编译看左,运行看右;由于存在方法重写,所以就运行最终的就是子类的成员方法
静态方法 : (静态方法算不上方法重写,静态直接跟类有关系!) 编译看左,运行看左
A:修饰局部变量 基本数据类型:如果局部变量是一个基本数据类型,那么被final修饰,基本数据类型的变量的值不能再改变!
引用数据类型:如果用final修饰引用类型的变量,那么它不能在重写分配堆内存空间,但是可以改变可以成员变量的值.
B:初始化时机 在对象创建之前都可以.
a.构造代码块中可以进行初始化
b.构造方法中可以进行初始化
c.定义成员变量的时候,可以直接进行初始化.
4:多态是什么,前提是什么?
多态:一个事物在不同时刻体现出来的不同状态 条件1:必须有继承关系(如果没有继承关系,谈不上多态!)
条件2:必须有方法重写子类出现了父类一样的 方法声明
条件3:有父类引用指向子类对象:向上转型 Fu f = new Zi() ;
5:多态中成员访问的特点?
成员变量 : 编译看左边,运行看左边
成员方法 : 编译看左,运行看右;由于存在方法重写,所以就运行最终的就是子类的成员方法
静态方法 : (静态方法算不上方法重写,静态直接跟类有关系!) 编译看左,运行看左
6:多态的好处及弊端?如何解决多态的弊端?
1)提高代码的维护性(由继承保证) 多态的弊端: 不能访问子类的特有功能
2)提高代码的扩展性(由多态保证)
1)提高代码的维护性(由继承保证) 多态的弊端: 不能访问子类的特有功能
2)提高代码的扩展性(由多态保证)
(1)创建子类的具体对象,来访问自己的特有功能;虽然可以解决多态的弊端,但是从内存角度考虑,需要创建子类对象,那么必须在堆内存开辟空间,
耗费内存,浪费空间
(2)既然多态的第三个前提条件:父类引用指向子类对象, 那么子类的引用也可以指向父类对象
耗费内存,浪费空间
(2)既然多态的第三个前提条件:父类引用指向子类对象, 那么子类的引用也可以指向父类对象
7:什么是向上转型?什么是向下转型?
向上转型:由父类引用指向子类对象
向下转型:将父类的引用强制转换为子类的引用:前提必须有父类的引用存在;且向下转型必须依赖于向上转型!
8:抽象类概述及其特点?
每个行为的功能不同。所以不能定义为一个类,而是给出 abstract 例如动物类、
抽象类不能实例化:抽象类不能创建对象
向上转型:由父类引用指向子类对象
向下转型:将父类的引用强制转换为子类的引用:前提必须有父类的引用存在;且向下转型必须依赖于向上转型!
8:抽象类概述及其特点?
每个行为的功能不同。所以不能定义为一个类,而是给出 abstract 例如动物类、
抽象类不能实例化:抽象类不能创建对象
9:抽象类成员特点?
用public static final 修饰 成员变量可以是常量,也可以是变量
用public static final 修饰 成员变量可以是常量,也可以是变量
10:抽象类的小问题
A:一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
可以的 一个抽象类可以包含抽象和非抽象方法
A:一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
可以的 一个抽象类可以包含抽象和非抽象方法
B:abstract不能和哪些关键字共存
private final
private final
11:接口的概述及其特点?
扩展一些独特的功能 永远被public修饰,没有构造方法,不能实例化
12:接口的成员特点?
成员变量只能是一常量:存在默认修饰符:public static final
13:抽象类和接口的区别?
接口的方法都是抽象的,而抽象类可以包含 抽象方法和非抽象方法
扩展一些独特的功能 永远被public修饰,没有构造方法,不能实例化
12:接口的成员特点?
成员变量只能是一常量:存在默认修饰符:public static final
13:抽象类和接口的区别?
接口的方法都是抽象的,而抽象类可以包含 抽象方法和非抽象方法
构造方法:
抽象类:可以有无参构造,有参构造方法 可以有抽象方法,也可以有非抽象方法
{通过子类进行数据初始化(通过子类创建对象)}
接口:没有构造方法的 只能是抽象方法:存在默认修饰符:public abstract
抽象类:可以有无参构造,有参构造方法 可以有抽象方法,也可以有非抽象方法
{通过子类进行数据初始化(通过子类创建对象)}
接口:没有构造方法的 只能是抽象方法:存在默认修饰符:public abstract
类:继承关系:extends,java中只支持单继承,不支持多继承,但是可以多层继承!
接口:继承关系:extends,可以支持单继承,也可以多继承!
接口:继承关系:extends,可以支持单继承,也可以多继承!
day09
1:博客自己总结这两天学的东西
2:形式参数和返回值问题
形式参数
基本类型形式参数的改变对实际参数没有影响(String是引用类型和基本数据类型的效果一样String s ="abc")
3:内部类的概述及访问特点
在一个类中定义另一个类;
内部类可直接访问外部类成员,且包括私有
4:内部类的分类
(1)成员内部类: 在外部类的成员位置定义
(2)局部内部类: 在外部类的局部位置定义
5:匿名内部类的格式和应用及面试题
(必须存在一个接口或者一个类)格式:new 接口名或者类名(){
@Override 方法重写
面试题:匿名内部类面试题:
按照要求,补齐代码
interface Inter { void show(); }
class Outer { //补齐代码 }
class OuterDemo {
public static void main(String[] args) {
Outer.method().show();
}
}
要求在控制台输出”HelloWorld”
}
2:形式参数和返回值问题
形式参数
基本类型形式参数的改变对实际参数没有影响(String是引用类型和基本数据类型的效果一样String s ="abc")
如果形式参数是引用类型:
具体类类:如果形式参数是一个具体类,那么需要创建该类对象
抽象类:如果形式参数是抽象类的情况,那么需要自定义一个抽象类的子类,来进行实例化(创建对象)!,创建对象的实质: 抽象类多态!
接口:那么需要自定义一个接口的子实现类,然后通过接口多态的形式给接口进行实例化!(接口多态!
由于接口不能实例化,需要定义接口的子实现类)
具体类类:如果形式参数是一个具体类,那么需要创建该类对象
抽象类:如果形式参数是抽象类的情况,那么需要自定义一个抽象类的子类,来进行实例化(创建对象)!,创建对象的实质: 抽象类多态!
接口:那么需要自定义一个接口的子实现类,然后通过接口多态的形式给接口进行实例化!(接口多态!
由于接口不能实例化,需要定义接口的子实现类)
返回值:
具体类:直接返回该类对象(通常实际开发中使用的是匿名对象)
抽象类:返回值如果是抽象类,需要的返回是该抽象类的子类对象
接口:返回值如果是接口类型,需要的是返回该接口的子实现类对象(通过子实现类进行实例化!)
具体类:直接返回该类对象(通常实际开发中使用的是匿名对象)
抽象类:返回值如果是抽象类,需要的返回是该抽象类的子类对象
接口:返回值如果是接口类型,需要的是返回该接口的子实现类对象(通过子实现类进行实例化!)
在一个类中定义另一个类;
内部类可直接访问外部类成员,且包括私有
4:内部类的分类
(1)成员内部类: 在外部类的成员位置定义
(2)局部内部类: 在外部类的局部位置定义
5:匿名内部类的格式和应用及面试题
(必须存在一个接口或者一个类)格式:new 接口名或者类名(){
@Override 方法重写
面试题:匿名内部类面试题:
按照要求,补齐代码
interface Inter { void show(); }
class Outer { //补齐代码 }
class OuterDemo {
public static void main(String[] args) {
Outer.method().show();
}
}
要求在控制台输出”HelloWorld”
}
//接口
interface Inter{
void show() ;
public abstract void show() ;
}
class Outer{
public static Inter2 method(){ //返回值是一个接口
return new Inter2(){
interface Inter{
void show() ;
public abstract void show() ;
}
class Outer{
public static Inter2 method(){ //返回值是一个接口
return new Inter2(){
@Override
public void show() {
System.out.println("helloworld");
}
} ;
}
}
public void show() {
System.out.println("helloworld");
}
} ;
}
}
//测试类
public class InnerClassTest2 {
public static void main(String[] args) {
Outer.method().show();
public class InnerClassTest2 {
public static void main(String[] args) {
Outer.method().show();
阅读全文
0 0
- 10.21/22作业
- 作业22
- linux作业练习(10.21/22)
- 10.21作业及总结
- 10.21作业(Java)
- 10.21作业(C)
- 作业1-22
- 算法作业22
- 2017.10.22作业
- 10/21/22作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 扯淡闲聊
- 放苹果
- python 闭包
- HTML基础
- 标准C语言第六天
- 10.21/22作业
- TensorFlow保存读取数据
- 信号处理中各种变换的关系图
- 21、网络IPC:套接字(2)
- linux端口开放和端口对外开放
- C realloc函数
- 标准C语言第七天
- 计蒜客 热爱工作的蒜蒜 spfa+dfs
- Unity3D学习笔记1-角色控制