软考-面向对象基本特征(下)
2020-01-13 本文已影响0人
zhongcx
习题答案
1.1 - 1.5 A B C D D
2.1 - 2.3 D A D
3.1 - 3.8 D C D D D A C A
4.1 - 4.2 C B
知识点分析
《概念》
【对象组成】三部分:对象名(标识)、属性和方法。
【消息传递】对象之间进行通信的一种构造称为消息。当一个消息发送给某个对象时,包含要求接收对象去执行某些活动的信息,接收到信息的对象经过解释,然后予以响应,这种通信机制称为消息传递。
【类】类是对象的模板
《继承》
【继承】继承是父类与子类之间共享数据和方法的机制。
《多态》
【多态原理】基类及其派生类中拥有同名的方法,但这引起方法具有不同的实现及功能。
【动态绑定技术】多态就是典型的动态绑定技术。
《封装》
【封装】在面向对象方法中,将逻辑上相关的数据以及行为绑定在一起,使信息对使用者隐蔽称为封装
工作注意
【JavaBean的封装】尽量把使用在Bean中的属性,都通过封装的方法来实现。
package com.example.test;
import androidx.annotation.NonNull;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
public static void main(String[] args) {
People mPeople = new People("张三", "2010-02-20");
/**方案一:通过方法,把处理好的值,直接显示出来*/
System.out.println(mPeople);
// /**方案二:取出原始值 再处理【不推荐,失败了java面向对象封装的特点,不易维护和扩展】*/
// try {
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
// Date mNowDate = new Date();
// Date mDate = simpleDateFormat.parse(mPeople.birthday);
// System.out.println(mPeople.name + "的年龄:" + (mNowDate.getYear() - mDate.getYear()) + "岁");
// } catch (ParseException e) {
// e.printStackTrace();
// }
}
public static class People {
public String name;
public String birthday;
public People(String name, String birthday) {
this.name = name;
this.birthday = birthday;
}
@NonNull
@Override
public String toString() {
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date mNowDate = new Date();
Date mDate = simpleDateFormat.parse(birthday);
return name + "的年龄:" + (mNowDate.getYear() - mDate.getYear()) + "岁";
} catch (ParseException e) {
e.printStackTrace();
}
return "error";
}
}
}
