Java程序设计-项目驱动式教程03学生基本信息管理_第1页
Java程序设计-项目驱动式教程03学生基本信息管理_第2页
Java程序设计-项目驱动式教程03学生基本信息管理_第3页
Java程序设计-项目驱动式教程03学生基本信息管理_第4页
Java程序设计-项目驱动式教程03学生基本信息管理_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

讲师:XXX时间:

月目录CONTENTWS01.项目开发环境搭建02.学生成绩管理03.学生基本信息管理04.不同类别学生信息管理05.学生基本信息查找与计算目录CONTENTWS06.使用集合实现学生信息管理07.学生信息管理系统异常处理08.使用文件实现学生信息存储09.使用JDBC实现学生信息管理10.图书管理系统设计与实现项目三

学生基本信息管理项目3学生基本信息管理任务一面向对象和类任务二

象任务三

包和修饰符知识目标了解类和对象的概念,以及面向对象编程的特性。掌握定义类、成员变量和成员方法的方法,方法重载的方法,以及构造方法和this关键字的用法。掌握创建和使用对象的方法。掌握声明和使用包的方法,了解Java常用系统包。

掌握访问控制修饰符、static修饰符、abstract修饰符和final修饰符的用法。能力目标能够使用面向对象思想解决实际问题。能够合理设置类及其成员的访问权限。素养目标强化协同合作精神,增强数据安全意识。培养创新和模块化思维,提升灵活运用知识解决实际问题的能力。点击跳过情境扫码观看“学生基本信息管理”视频,讨论并回答下列问题问题1:学生基本信息一般包括哪些信息,这些信息分别是什么数据类型?问题2:如何使用Java实现学生基本信息管理?学生基本信息管理扫码学习任务一面向对象和类主流的编程思想12

面向过程编程强调按部就班地执行任务,适合解决线性、明确的问题。面向过程编程

面向对象编程通过封装、继承和多态提升代码的复用性和维护性。面向对象编程面向对象编程优势封装与抽象

通过封装,面向对象编程允许创建可重用的代码模块,减少重复劳动。

面向对象编程支持继承和多态,使得代码更易于扩展和维护,适应需求变化。可扩展性与维护性1.对象和类对象定义

现实世界的每个具体事物均可视为对象,如狗、电视机等,均具备名称、颜色等属性及叫、变速等行为特征。类与实例

类为同类对象的抽象集合,如自行车设计图定义车型与功能,其具体生产出的车辆即为类的实例化表现。2.面向对象编程的特性抽象封装继承多态抽象概念

面向对象编程中,抽象是关键特性,提炼事物属性与行为,构建通用类或接口,聚焦核心功能。抽象实例

交通工具抽象为类,具速度、核载人数属性,移动行为,不论汽车飞机,提高代码复用性与扩展性。(1)抽

象(2)封

装封装概念

面向对象编程基石,封装属性与行为于类中,隐藏细节,提供接口,确保用户交互无需了解内部逻辑。封装作用

控制访问权限,保护内部数据结构,避免外部操作影响,提升代码安全与可维护性。(3)继

承封装概念继承的概念与作用

继承允许子类从父类继承、修改或新增属性与行为。继承的优点

继承实现代码复用,减少冗余,便于维护扩展,提升编程效率。封装概念汽车类的继承示例

汽车分乘用车(≤9座)和商用车,衍生轿车、货车等子类,继承品牌、座位等属性。

汽车的继承关系多态多态概念

一个接口多种实现,子类继承父类展现不同行为。多态优势

提高代码灵活性与扩展性,同一行为在父类及子类中含义各异,实现不同功能效果。(4)多态打印机多态表现1.定义类

类是

Java

程序的基本结构单位,想要创建对象,需要先定义类。定义类的语法格式[类修饰符]class类名[extends父类名][implements接口名列表]{//类体}其中,类修饰符可以是

public、abstract

final

等;class

关键字用于声明类;类名必须是合法的自定义标识符,通常是一个有意义的名称;extends

关键字用于实现继承,父类名是要继承的类名;implements

关键字用于实现接口。类体是大括号“{}”中的内容,一般包括成员变量和成员方法的定义。publicclassAddress{ //定义类//成员变量Stringname;Stringaddress;//成员方法publicvoidshowAddress(){System.out.println(name+"的地址是"+address);}}示例定义一个地址类

Address,包含姓名和地址变量,以及显示地址的方法,可以使用以下代码实现。2.定义成员变量

成员变量体现的是对象的属性。定义成员变量的语法格式[修饰符]数据类型

变量名[=初值];其中,修饰符可以是访问控制修饰符,也可以是static和final;数据类型是Java支持的任意数据类型。定义成员变量时可以设置初值,也可以不设置初值。如果不设置初值,则成员变量的初值为其数据类型的默认值。如果不设置初值,则成员变量的初值为其数据类型的默认值。数据类型默认值

数据类型默认值byte、short、int、long0booleanfalsefloat、double0.0引用类型null(空值)char''(空格)——常见数据类型的默认值示例Stringname="张某"; //定义姓名成员变量,并赋初值为“张某”intage; //定义年龄成员变量,默认初值为0floatscore; //定义成绩成员变量,默认初值为0.0在一个类中

在一个类中,成员变量是唯一的。局部变量可以与成员变量同名,但在使用时局部变量的优先级更高。

虽然

Java

没有强制要求成员变量必须在类的开始部分定义,但建议在成员方法前定义成员变量,以增强代码的可读性和结构性。3.定义成员方法成员方法体现的是对象的行为定义成员方法的语法格式[修饰符]返回值类型

方法名([形参列表]){//方法体}其中,修饰符可以是访问控制修饰符,也可以是

static、abstract

final;返回值类型用于指定成员方法返回数据的类型,可以是

Java

支持的任意数据类型,如果成员方法没有返回值,则使用

void

关键字;形参(形式参数)列表是在定义成员方法时声明的参数,包括参数类型和参数名,用于接收调用方法时传入的数据,可以是零个、一个或多个,当有多个参数时,参数之间用英文逗号隔开。classStudent{floatscore; //定义学生成绩成员变量publicfloatgetScore(){ //定义成员方法returnscore; //返回学生成绩}}示例如果定义的方法有返回值,则在方法中必须使用

return

关键字返回指定类型的数据,且返回数据的类型与方法的返回值类型一致。例如,在学生类

Student

中定义一个成员方法,获取学生成绩score,可以使用以下代码实现。形参

形参只有在方法被调用时才分配内存空间,调用结束便释放所分配的内存空间。因此,形参只在方法内部有效。实参必须是确定的值,方法被调用时将这些值传递给形参。。【运行结果】实例:3-1求两个整数的较大值【参考代码】/*GetMax.java*/publicclassGetMax{//定义方法,获取两个整数的较大值staticintmax(inta,intb){……(详见教材)

如果定义方法时参数的数量不确定,则可以使用可变参数。可变参数使用

3

个点“…”表示,定义方法时,在参数类型后面加上“…”,然后紧跟参数名。示例publicvoidmyMethod(int...numbers){//方法体}可变参数必须是形参列表中的最后一个参数,且一个方法只能有一个可变参数。实例:3-2使用可变参数【运行结果】/*VariableNumbers.java*/publicclassVariableNumbers{//定义方法,输出1个浮点数和不定数量的整数……(详见教材)

【参考代码】4.方法重载概念

方法重载是指在一个类中定义方法名相同但参数不同的多个方法。调用方法时系统会自动根据不同的参数选择相应的方法。特点(1)方法名必须相同。(2)方法的参数不同,包括参数的数量、类型或顺序。(3)方法可以有不同的返回值类型。(4)方法可以有不同的修饰符。【运行结果】实例:3-3方法重载【参考代码】/*MethodOverload.java*/publicclassMethodOverload{//定义方法,实现两个整数相加……(详见教材)

5.构造方法构造方法的自动调用机制

构造方法在对象创建时自动执行,用于初始化类的成员变量。构造方法的特殊属性方法名与类名一致

构造方法名称必须与所属类名完全相同,这是其显著特征之一。无返回值类型声明

构造方法不需声明返回值类型,这一特性区别于普通方法。

如果一个类没有显式定义构造方法,则系统会自动提供一个默认的构造方法,它没有参数,方法体也为空。如果需要在创建对象时初始化类的成员变量或执行一些操作,可以显式定义一个构造方法。示例publicclassPerson{Stringname; //定义姓名成员变量intage; //定义年龄成员变量publicPerson(){ //定义构造方法name="王某"; //为name赋值age=18; //为age赋值}}如果需要在创建对象时通过构造方法传入参数,可以定义一个带参数的构造方法示例publicclassPerson{Stringname; //定义姓名成员变量intage; //定义年龄成员变量//定义带参数的构造方法publicPerson(StringmyName,intmyAge){name=myName; //将传入的myName赋值给nameage=myAge; //将传入的myAge赋值给age}}【运行结果】实例:3-4创建Person类,实现显示3个人的详细信息/*Person.java*/publicclassPerson{Stringname; //定义姓名变量……(详见教材)

【参考代码】6.this关键字(1)使用

this

关键字访问当前类的成员变量和调用当前类的成员方法语法格式this.成员变量名; //访问当前类的成员变量this.成员方法名([实参列表]); //调用当前类的成员方法当类的成员变量与局部变量或方法参数变量名称相同时,同名的成员变量会被隐藏,此时需要通过this关键字访问隐藏的成员变量。【运行结果】实例:3-5使用this关键字访问当前类的成员变量和调用当前类的成员方法/*ThisExample1.java*/publicclassThisExample1{//定义成员变量……(详见教材)

【参考代码】(2)使用this关键字在构造方法中调用当前类的其他构造方法语法格式this([实参列表]); //调用构造方法在构造方法中this()语句前不能有其他语句。【运行结果】实例:3-6使用this关键字在构造方法中调用当前类的其他构造方法/*ThisExample2.java*/publicclassThisExample2{intx,y; //定义成员变量

定义成员变量……(详见教材)

【参考代码】创建学生基本信息类扫码学习12实施流程

在项目的

src

目录下新建

Student

在Student类中定义带参数的构造方法3

在Student类中定义成员方法面向对象和类面向对象概述类任务二对

象12

声明对象实例化对象(1)声明对象声明一个类的变量,该变量的数据类型为已经定义好的类语法格式类名

对象名;示例Personp1; (2)实例化对象使用

new

关键字为声明的对象分配内存空间,同时调用类的构造方法初始化对象语法格式对象名=new类名([实参列表]);示例p1=newPerson(); //实例化对象

其中,实参列表取决于构造方法自身的情况。声明和实例化对象还可以同时实现,其语法格式类名

对象名=new类名([实参列表]);示例Personp1=newPerson(); 使用对象

是通过对象访问成员变量和调用成员方法,可以使用“.”实现。对象名.成员变量名;对象名.成员方法名([实参列表]);语法格式【运行结果】实例:3-7

编写一个简单的计算器程序,实现两个浮点数的加、减、乘、除操作/*Operation.java*/importjava.util.Scanner; //导入Scanner类publicclassOperation{……(详见教材)

【参考代码】对象的生命周期一个对象的生命周期分为

3

个阶段:创建、使用和销毁。每个对象都有独立的内存空间,当对象的生命周期结束时,对象将变成垃圾。Java

虚拟机内置的垃圾回收器会定期扫描内存,识别未被引用的对象并将其回收,从而释放不再使用的内存空间。创建学生对象并展示学生基本信息扫码学习12实施流程在任务实施的

Student

类中添加

main()方法通过

student1

student2

调用

displayInfo()方法3运行

Student

类对

象创建对象使用对象任务三包和修饰符1包的概念2包的作用3包的命名包是Java中用于组织类的机制,类似于文件夹,用于分类存储Java文件,避免类名冲突。

通过包,可以在不同的命名空间中使用相同的类名,便于管理和访问类。

在创建类时,需要指定类所在的包,包名通常采用反向域名的形式,如com.example.package。声明包概念

在Java中,使用package关键字来声明一个包,这有助于组织和管理类,避免命名冲突。包声明位置

包声明应位于源文件的首行,除去注释,以确保编译器能正确识别类所属的包。包名规范

包名通常采用全小写的自定义标识符,反映项目结构或公司域名,如ject。1.声明包package包名;声明包语法格式示例packagemypackage;packagecom.sec.mypackage;package

关键字用于声明包;包名是一个合法的自定义标识符,一般为小写。其中,com.sec.mypackage包的层级结构import包名.类名;使用包语法格式在某个类中使用其他包中的类时,须在该类前使用

import

关键字导入指定包中的类。示例//导入java.util包中的ArrayList类importjava.util.ArrayList;2.使用包如果要导入包中的所有类,则可以用星号“*”代替类名,其语法格式import包名.类名;示例//导入com.sec.mypackage包中的所有类importcom.sec.mypackage.*;如果类中有

package

语句,则

import

语句紧跟在

package

语句后面;如果类中没有package

语句,则import语句在类文件的第一行。在类文件中可以使用多条import语句导入多个包中的类。需要注意的是,使用import语句只能导入其他包中的公共类。实际编译

在实际编译时,Java

并不会导入星号所代表的所有类,只会导入程序中用到的类。【运行结果】实例:3-8

创建和使用包【参考代码】/*CreatePackage.java*/packagecom.example; //声明包publicclassCreatePackage{……(详见教材)

新建包

新建包也可在新建类时使用完整类名实现。例如,在新建类时输入类名“com.example1.Test”,会自动新建

com

包,并在包中新建

example1

包,最后在example1包中新建Test类。3.Java常用系统包Java

提供了大量常用的类库,它们位于相应的系统包中,这些包又称

API

包。与开发者创建的包不同,所有JavaAPI包都以“java.”开头。Java常用的系统包包

名说

明java.langJava

基础包,包含基本数据类型的包装类、数学函数类、字符串类、线程类、异常处理类等java.applet包含创建Javaapplet所需的类库java.io包含输入和输出相关的类库java.util包含集合类、随机数生成类等包含实现网络编程的类库java.sql包含实现数据库编程的类库java.text包含文本、日期、数值和消息格式化处理相关的类库java.time包含日期和时间处理相关的类库其中,java.lang

包是所有类库的基础,使用该包中的类库时,无须使用

import

语句导入就可以直接使用该包中类的常量和方法。

Java

提供了

4

种访问控制修饰符,它们用于控制类、成员变量、成员方法和构造方法的访问权限。1.访问控制修饰符protected(受保护)

private(私有)public(公共)访问控制修饰符default(默认)访问权限publicprotecteddefaultprivate同一个类√√√√同一个包中的其他类√√√×不同包中的子类√√××不同包中的非子类√×××

对象的访问权限public

可以修饰类、成员变量、成员方法和构造方法。protected

可以修饰成员变量、成员方法和构造方法,不可以修饰类。default

可以修饰类、成员变量、成员方法和构造方法。private

可以修饰成员变量、成员方法和构造方法,不可以修饰类。局部变量

局部变量只能在方法或语句块内部被访问,不能使用访问控制修饰符修饰。ClassA

类和

ClassB

类位于

mypack1

包中,其中的

ClassA

类是

public

类型,ClassC

类和

ClassD

类位于mypack2包中,且ClassC类是ClassA类的子类,在

ClassA

类中定义了4个成员变量和4个成员方法,类及其成员的结构(1)(2)(3)(4)

ClassA

类中,可以访问

ClassA类的num1、num2、num3和num4变量,以及a()、b()、c()和d()方法。

在ClassC类中,可以访问ClassA类的num1和num2变量,以及a()和b()方法。

在ClassB类中,可以访问ClassA类的

num1、num2和num3变量,以及a()、b()和c()方法。

在ClassD类中,可以访问ClassA类的num1变量和a()方法。访问ClassA类的成员变量和成员方法的权限2.static修饰符(1)使用static修饰成员变量静态变量定义

在类中使用static关键字声明的成员变量,称为静态变量,所有对象共享同一份内存。静态变量访问

可通过类名或对象名访问静态变量,其内存仅在类加载时分配一次,不受对象数量影响。实例变量特性

未用static修饰的成员变量为实例变量,每个对象拥有独立的内存空间,需通过对象名访问。实例变量创建

每次创建新对象,系统将为其实例变量分配独立内存,保证各对象数据的独立性。定义限制

使用static关键字修饰的成员方法,称为静态方法,可在类级别调用,无需实例化对象。静态方法(2)使用static修饰成员方法

静态方法内不可使用this关键字,无法直接访问实例变量与实例方法,仅能调用静态变量和静态方法。【运行结果】实例:3-9

使用static修饰符【参考代码】/*StaticExample.java*/publicclassStaticExample{staticinta=100; //定义静态变量……(详见教材)

通过对象

se1

对静态变量

a

和实例变量

b

重新赋值后,通过对象

se2

访问

a

得到修改后的值,说明所有对象共享静态变量,通过对象

se2访问b得到初始值,说明每个对象的实例变量都有自己的内存空间。(3)使用static修饰语句块静态语句块定义

静态语句块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论