【软件设计师-从小白到大牛】下午题基础篇:第五章 面向对象程序设计(C++/Java)

前言


本系列文章为观看b站视频以及b站up主@zst_2001系列视频所做的笔记,感谢相关博主的分享。如有侵权,立即删除。
视频链接:视频链接(注:文章中有关图片、以及网友的相关评论与总结等内容未标明出处均出自该视频,感谢大家的分享!)
b站up主页:b站up

章节提要

C++和Java二选一(建议选Java,相较简单些)
在这里插入图片描述

一、C++

1、类与派生类的定义

在这里插入图片描述

2、类外定义函数体

在这里插入图片描述

3、构造函数与析构函数

在这里插入图片描述

4、对象指针与对象引用

在这里插入图片描述

5、虚函数

在这里插入图片描述

二、Java

1、类的定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、接口的定义

在这里插入图片描述
在这里插入图片描述

三、答题技巧

  • JAVA中抽象类不一定有抽象方法,但有抽象方法的一定是抽象类

  • publicabstract关键字对于interface来说是冗余的,即可以省略不写(答案一般都不写)。

  • 抽象类中的抽象方法需要写关键字abstract。(abstractpublic位置可互换,建议先写public然后写abstract

  • 接口类似于函数的声明。

  • 填写的往往是调用另外一个类中的方法,而不是真正实现该类中方法。

  • 子类继承父类的属性可以再构造方法中利用this.属性=值在构造方法中将值赋值到该类的属性中。(该继承的属性最合适为protected的,该属性在子类中不必再定义)

  • 子类中除了继承父类属性之外的属性,即子类特有的属性需要子类自己定义,如果缺失类型或变量,则在类中进行查找并填空。

  • 注意:new一个类的时候,new后面的类名需要加(),千万注意!(例如:Person p=new Person())。

  • 注意:如果是抽象类型 对象名=new 子类型若代码中存在该对象调用方法的代码,则该方法一定是在抽象类型且在子类型中都存在的,因为向上转型对象不能操作子类新增加的成员变量和成员方法,所以其调用的方法一定是在父类中存在的
    (注:下图来自《Java语言程序设计》(陈俊杰、相洁主编,高等教育出版社))image
    (注:下图来自《Java语言程序设计》(陈俊杰、相洁主编,高等教育出版社))
    image

  • 类中方法中参数为this则传入的为该类的对象。(this访问当前对象
    (注:下图来自前言中up主视频)image

  • 创建对象时List<int> list=new ArrayList<>()List<int> list=new ArrayList<int>()都是正确的,即尖括号里面的内容可以省略,下午题中还是写上其中内容为妙
    (注:下图来自前言中up主视频)
    image
    (注:下图来自《Java语言程序设计》(陈俊杰、相洁主编,高等教育出版社))
    image

  • 抽象类中的抽象方法必须写abstract关键字

  • 存在需填空代码是创建变量/调用函数时,要考虑/判断是否需要传参数

  • 别的类或函数中,要获取某个类中的私有属性,必须通过该类的公有成员方法进行获取

  • 类有成员变量和成员方法,而接口却只有常量和抽象方法,也就是说,接口的成员变量必须初始化,同时接口中的所有方法必须声明为abstract方法(关键字abstract可省)。

  • 接口体包括接口中需要说明的常量和抽象方法。由于接口体中只有常量,所以接口中的成员变量只能定义为staticfinal型,在类实现接口时不能被修改,而且必须用常量初始化。
    (注:下图来自《Java语言程序设计》(陈俊杰、相洁主编,高等教育出版社))image
    (注:下图来自《Java语言程序设计》(陈俊杰、相洁主编,高等教育出版社))
    image

四、案例分析

1、案例1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 抽象工厂:设计模式中的典型的创建型模式,有多个不同的工厂,只需要指定的工厂,生产出来的类就属于同一种系列的类,产生的对象就是一个系列的对象。

正确答案
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、案例2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 桥接模式:会把类树分成2个,用桥连接起来。
  • 依赖关系:一个类调用了另外一个类的方法。

正确答案
在这里插入图片描述
(4)在这里插入图片描述(5)在这里插入图片描述
(6)在这里插入图片描述

  • 26
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是Java代码: 首先,在Petstore宠物商店的用户类中添加一个修改密码的方法: ```java public class User { private String username; private String password; // 构造函数 public User(String username, String password) { this.username = username; this.password = password; } // 获取用户名 public String getUsername() { return username; } // 获取密码 public String getPassword() { return password; } // 修改密码 public void setPassword(String newPassword) { password = newPassword; } } ``` 然后,在Petstore宠物商店的主类中添加一个修改密码的功能: ```java import java.util.Scanner; public class Petstore { private static User currentUser; public static void main(String[] args) { // 初始化用户 User user = new User("username", "password"); currentUser = user; // 显示欢迎信息 System.out.println("Welcome to Petstore!"); // 显示当前用户信息 System.out.println("Current user: " + currentUser.getUsername()); // 修改密码 updatePassword(); } // 修改密码 private static void updatePassword() { Scanner scanner = new Scanner(System.in); // 获取旧密码 System.out.print("Enter old password: "); String oldPassword = scanner.nextLine(); // 验证旧密码是否正确 if (!oldPassword.equals(currentUser.getPassword())) { System.out.println("Old password is incorrect!"); return; } // 获取新密码 System.out.print("Enter new password: "); String newPassword = scanner.nextLine(); // 设置新密码 currentUser.setPassword(newPassword); // 显示修改成功信息 System.out.println("Password updated successfully!"); } } ``` 这样,Petstore宠物商店就可以支持修改密码的功能了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

马看到什么是人决定的

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值