Java编程学习资源:北邮与伦敦玛丽女王大学课程讲义

需积分: 25 5 下载量 54 浏览量 更新于2024-07-23 收藏 312KB PDF 举报
"这是一份来自北京邮电大学的Java编程学习资料,涵盖了面向对象的编程概念。课程可能由Queen Mary, University of London的Dr Yizhe Song、Dr Vindya Wijeratne和Dr Paula Fonseca等人教授,他们在不同时间段负责不同的教学班级。该资料包括了EBU4201 Java Programming模块,提供了课程大纲、讲义、实验指导、示例和相关链接。学习平台是QMPlus,学生需要用他们的学院账户登录。课程网页是获取信息、课程作业详情、讲座幻灯片、实验表、示例和讨论区的主要途径。此外,学生可以在课后或指定的辅导时间向讲师提问,或者在消息板上发帖寻求帮助。" 基于以上信息,以下是相关的Java编程和面向对象的知识点: 1. **Java语言基础**:Java是一种广泛使用的高级编程语言,以其跨平台、面向对象、安全性等特性而闻名。学习Java编程,首先需要掌握基础语法,如变量、数据类型、控制结构(条件语句和循环)、函数等。 2. **面向对象编程(OOP)**:这是Java的核心特性,包括类、对象、封装、继承、多态等概念。学习者需要理解如何定义和实例化类,以及如何通过对象进行交互。封装是将数据和操作数据的方法绑定在一起,隐藏内部实现细节。继承允许子类从父类继承属性和方法,实现代码复用。多态则提供了多种形态的能力,使得子类可以覆盖或扩展父类的行为。 3. **Java内存管理**:包括栈和堆的概念,以及垃圾回收机制。理解如何分配和释放内存对于避免程序中的内存泄漏至关重要。 4. **异常处理**:Java有强大的异常处理机制,通过try-catch-finally语句块来捕获和处理运行时错误。 5. **集合框架**:学习Java的集合框架,如ArrayList、LinkedList、HashSet、HashMap等,以及它们的操作和用途。 6. **IO流**和**NIO**:了解输入输出流的概念,用于读写文件、网络通信等,以及非阻塞I/O(New IO)的使用。 7. **多线程**:Java支持多线程编程,学习如何创建和管理线程,处理同步和互斥问题。 8. **网络编程**:Java提供Socket编程接口,用于开发网络应用。 9. **反射**:学习Java反射机制,可以动态地获取类的信息并操作类的对象。 10. **Java标准库**:熟悉Java API,包括各种内置类和接口,如Collections、Arrays、Math等。 11. **设计模式**:了解和应用常见的设计模式,如工厂模式、单例模式、观察者模式等,提高代码的可维护性和可扩展性。 12. **QMPlus平台**:QMPlus是一个在线学习管理系统,学生可以在这里获取课程资料、提交作业、参与讨论,它是学习过程中的重要工具。 在实际学习过程中,除了理论知识,还需要通过编写代码、解决实际问题来加深理解和提高技能。同时,积极参与讨论和提问,利用提供的实验指导和示例进行实践,对提升编程能力非常有益。
1448 浏览量
实验1 类的定义、对象数组的使用 1. 定义一个学生类(Student), 属性有 1)非静态属性String studentNumber 2)非静态属性String studentName 3)非静态属性int markForMaths 4)非静态属性int markForEnglish 5)非静态属性int markForScience 方法有: 1)构造方法Student(String number, String name) 2)构造方法Student() 3)String getNumber() 4)String getName() 5)void enterMarks(int markForMaths, int markForEnglish, int markForScience) 6)int getMathsMark() 7)int getEnglishMark() 8)int getScienceMark() 9)double calculateAverage() 10)String toString() 返回学生信息,包括学号、姓名、数学成绩、英语成绩、科学成绩、平均成绩。 注意:为了保证calculateAverage返回double类型,需要把三个分数的和除以3.0,而不是3. 另外,分数的初始值是什么?如果每个分数初始值为0,会造成混淆,分数为0表示还没有输入分数,还是分数确实为0?有更好的初始值吗? 编写Student类,并且编写一个StudentTest类,对Student类进行测试。 StudentTest类运行效果如下: 请输入学生学号:2011211301 请输入学生姓名:王晓 请输入学生三门课成绩(数学,英语,科学):88,79,90 学生信息如下: 学号:2011211301 姓名:王晓 数学成绩:88 英语成绩:79 科学成绩:90 平均成绩:85.66666666666667 2.定义一个StudentList类用来存储Student对象 属性有 1)Student[] list; //list存储学生对象 2)int total; //学生总人数 方法有: 1)StudentList(int length) //length是数组长度 2)boolean add(Student stu) //增加stu到数组中,成功,返回true,否则false 3)boolean remove(int no) //删除第no个数组元素,删除成功,返回true,否则false 4)boolean remove(Student number) //删除学号为number的学生,删除成功,返回true,否则false 5)boolean isEmpty() //判断数组是否为空,若是,返回true,否则false 6)Student getItem(int no) //返回第no个学生 7)Student getItem(Student number) //返回学号为number的学生,若该生不存在,返回null。 8) int getTotal() 返回学生总人数 编写StudentList类,并且编写一个StudentListTest类,对StudentList类进行测试。 StudentListTest类运行效果: 菜单如下,请输入 1~8代表您要执行的操作: 1. 增加1个学生 2. 根据学号删除学生 3. 根据位置删除学生 4. 判断是否为空 5.根据位置返回学生 6.根据学号返回学生 7. 输出全部学生信息 8.退出程序 请输入您的操作:1 请输入学生信息: 学号:2011211301 姓名:王晓 数学成绩:88 英语成绩:79 科学成绩:90 ---目前有1个学生,信息为---: 学号:2011211301 姓名:王晓 数学成绩:88 英语成绩:79 科学成绩:90 平均成绩:85.66666666666667 请输入您的操作:1 学号:2011211311 姓名:李辉 数学成绩:80 英语成绩:79 科学成绩:93 ---目前有2个学生,信息为---: 学号:2011211301 姓名:王晓 数学成绩:88 英语成绩:79 科学成绩:90 平均成绩:85.66666666666667 姓名:李辉 数学成绩:80 英语成绩:79 科学成绩:93 平均成绩:84.0 请输入您的操作:5 请输入学生位置:10 对不起,没有对应的学生 请输入您的操作:5 请输入学生位置:2 学生信息如下: 姓名:李辉 数学成绩:80 英语成绩:79 科学成绩:93 平均成绩:84.0 请输入您的操作:3 请输入要删除第几个学生:2 删除成功 ---目前有1个学生,信息为: