java期末高效oop复习题

1.OOP中文全称
面向对象编程

2.OOP的三大特征
①封装
②继承
③多态

3.访问权限修饰符的关键字以及它们的权限范围
①public(公共权限) 可被任意访问
②private(私有权限) 只能在本类中访问
③protected(受保护权限) 可以被同包类访问
④default(同包权限/缺省的) 只能在同包类访问
⑤static(静态的) 静态方法只能调用静态的

/*
private 本类中访问
public 任意类中都可以访问
protected 包内访问 具有继承关系可以访问
*/
4.方法没有返回值的关键字是
void

5.方法的重载条件
一 方法名字一样
二 参数不一样
①参数数据类型不一样
②参数位置/顺序不一样
③参数个数不一样
三 在同一作用域(同一个类或者具有继承关系)范围内

6.方法重写的条件
( ①同名
②同参
③同返回值
④访问权限不能缩小)
/*
1-具有继承关系
2-方法的原型相同(同参同名同返回值)
*/
7.
public static int add(int x){
return x+10;
}

public static void main(String[] args) {
	// TODO Auto-generated method stub
	int x=10;
	add(x);
	System.out.println(x);
}

程序运行的结果?
10

8.以下构成重载的是 ③⑤
返回值 方法名(参数列表){方法体}
①int f(int x ,int y){ return x+y;} //返回值不作为重载的条件
double f(int x, int y){return x+y;}

②double f(double x,double y){ return x+y;} //参数数据类型一样
Double f(double y, double x){return x+y;}

③int f(int x,int y,int z){return x+y+z;}
int f(int x,int y){return x+y;}

④double f(double x,double y){return x+y;} //方法名字不一样
int f1(double x,double y,double z){return x+y+z;}

⑤double f(double x,double y){return x+y;}
int f(double x,double y,double z){return x+y+z;}

⑥double f(double x,double y){return x+y;} //方法名字不一样
int f1(int x,int y){return x+y;}

9.所有异常的父类是?
Exception

10.ArrayIndexOutOfBoundsException 中文是?
数组下标越界异常

11.Java中的类是(单)继承,(多)实现
12.接口可以包含一般方法??
不可以 只能是抽象方法

13.实现多态的条件
①继承(都有父类)
②方法的重写
③向上转型(在父类中new子类)

/*
1-向上转型
2-方法的重写
3-抽象方法抽象类
*/
14.编程题:
现在有学生类 老师类
共同点:
属性:姓名 年龄 性别 考试分数
方法:考试
不同点:
学生拥有学分属性

老师拥有绩效分属性

学生考试的方法中:
当分数>90 学分+3
当分数在80-90 学分+2
当分数在70-80 学分+1分
当分数在60-70 不加学分
当分数在60以下 学分-1

老师考试的方法中
当考试分数>95 绩效分+10
当考试分数在85-95 绩效分+5
当考试分数在75-85 绩效分+3
当考试分数在60-75 绩效分-2
当考试分数在60分以下 绩效分-5

1-类中的所有属性都要求私有化
2-在创建对象的时候,将姓名 年龄 性别 考试分数以及学分、绩效分这些属性赋初始值
3-调用考试的方法
打印出学生的学分
打印出老师的绩效分

public class Test {

public static void main(String[] args) {
	// TODO Auto-generated method stub

	Person stu=new Student("te", 14, '男', 85, 3);
	Person tch=new Teacher("tr", 44, '女', 93, 20);
	int s_score=stu.KaoShi(stu.getScore());
	int t_score=tch.KaoShi(tch.getScore());
	System.out.println("学生的学分:"+s_score);
	System.out.println("老师的绩效分:"+t_score);		
}

}

输出的结果:
学生的学分:5
老师的绩效分:25

Person.java

package com.revieaw;
/**
 * 老师类  学生类的父类
 * 共同属性
 * 姓名  年龄  性别  考试分数
 * @author 雅雯
 *
 */
public abstract class Person {
   
	private String name;
	private int age;
	private char sex;
	private double score;
	
	public abstract int KaoShi(double grade);//考试的抽象方法
	public Person(String name, int age, char sex
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与其终

我坚信,赞赏是不耍流氓的鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值