JAVA4OO1Word格式文档下载.docx
- 文档编号:20033950
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:15
- 大小:20.73KB
JAVA4OO1Word格式文档下载.docx
《JAVA4OO1Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《JAVA4OO1Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
//输出这个人的名字,通过.连接符访问
System.out.println(p.name);
System.out.println(p.age);
p.name="
yasuo"
;
p.gender="
男"
p.age=20;
p.hight=180;
p.weight=70;
p.race="
汉族"
p.diamond="
高富帅"
//声明时默认值是null
System.out.println(p1);
System.out.println("
====="
);
//nullpointexception
System.out.println(p1.name);
}
}
方法
publicclassStudent{
publicStringname;
publicStringgender;
publicintage;
//实例属性/普通属性
publicinthight;
//类属性,不建议使用
publicstaticStringrace;
//方法代表学生具有的行为,具有一种共性
publicvoidsleep(){
sleep"
publicintwalk(){
walk"
//结束了方法,并返回一个整数值
return10000;
publicStringeat(){
eat"
return"
吃的榴莲"
/**
*实例方法
*@paramgameName(形參)
*遊戲名稱
*/
publicvoidplayGame(StringgameName){
System.out.println(gameName);
*@paramlevel(形參)
*遊戲等級
publicvoidplayGame(StringgameName,intlevel){
System.out.println(gameName+"
"
+level);
//类方法
publicstaticvoidtest(){
类方法"
方法的调用
//將學生類导入到当前文件中,这样我们就可以操作这个学生类
importcom.cognizant.model.Student;
/**
*方法属性的调用都是通过实例去调用的,这里的实例是指我们创建出来的,不可能是空
*否则会报空指针异常
*@authortzhang
publicclassMain{
publicstaticvoidmain(String[]args){
//創建一個學生實例
Studentstu=newStudent();
//属性的访问
System.out.println(stu.name);
stu.name="
魏子安"
//方法的访问,调用walk方法,执行walk方法体,执行结束后,
//再回到此处,也就是调用的地方,
//方法的执行结果就是返回了他return部分的内容
intreturnVal=stu.walk();
//方法的直接调用
stu.sleep();
stu.walk();
System.out.println(returnVal);
方法执行结束"
System.out.println(stu.eat());
//按住ctrl,移動鼠標到方法調用的名字上,單擊鼠標左鍵
//"
王者榮耀"
-》实参
stu.playGame("
Stringgame="
intlev=1;
//gamelev是实参
stu.playGame(game,lev);
//类方法的调用,可以直接通过类.方法名调用,不需要通过实例调用
Student.test();
//不建议使用,底层调用会转换为通过类的方式调用
stu.test();
System.out.println(Student.race);
构造器
•构造器最大的用处就是在创建对象时执行初始化,初始化类中的属性
•如果程序员没有为Java类提供任何构造器,则系统会为这个类提供一个无参的构造器。
•一旦程序员提供了自定义的构造器,则系统不再提供默认的构造器。
//无参构造器,如果有参数,有参构造器,参数称为形参
//参数的来源,一般为实例属性
//构造器的名字,就是类名
publicStudent(){
//构造器重载
publicStudent(Stringname,Stringgender){
this.name=name;
this.gender=gender;
publicStudent(Stringname,Stringgender,intage,intheight){
//调用的是含有2个参数的构造器
this(name,gender);
this.age=age;
this.height=height;
对象this的引用
this关键字总是指向调用该方法的对象.
1.构造器中引用该构造器执行初始化的对象
2.在方法中引用调用该方法的对象
3.this用于区别属性和局部变量
注:
this不能用在有static修饰的方法中(原因)
方法的重载
*与上面下面相邻的方法都是方法重载,方法重载只关注
*1、同一个类中
*2、方法名相同
*3、形参列表不同
*其他都不管(如返回值类型)
*@paramlevel
*@return
publicintplayGame(intlevel){
returnlevel;
递归
*求阶乘的递归
*@parami
privatestaticintfactorial(inti){
//考虑i<
0或者i=1的情况
if(i==1||i==0){
return1;
}
returni*factorial(i-1);
//存在着方法调方法,一个return只能结束一个方法,所以一开始的那个return最后结束
//returnreturn
//3*factorial
(2)-》3*2*factorial
(1)->
3*2*1
//4*factorial(3)-》4*3*factorial
(2)->
4*3*2*factorial
(1)
//4*3*2*1
长度可变的参数
*
*@paramsubject
*科目
*@paramgrade
*长度可变的形参(0-无穷),必须在参数的最后一个,数据类型后面加上三个点,
*后面跟着参数名就行,grade接收参数后是一个数组
publicvoidscore(Stringsubject,int...grade){
System.out.println(subject);
System.out.println(grade.length);
for(inti:
grade){
System.out.print(i+"
System.out.println();
局部变量
局部变量可分为三种:
1.形参
2.方法局部变量
与成员变量不同的是除了形参外,其他局部变量都必须显式地初始化
publicclassMain1{
staticStringstr="
hello"
Stringstr="
world"
System.out.println(str);
//world
•局部变量仅在方法内有效,当方法执行完成时,局部变量便会自动销毁
成员变量
方法外,类内部定义
局部变量与成员变量他们定义的位置?
局部变量与成员变量他们的作用域?
引用传递
值传递(基本数据类型)
publicclassValTran{
//值传递-传递的是变量值-基本数据类型
inty=20;
baseTran(y);
System.out.println(y);
//20
//值传递(引用传递)-传递的是地址值-引用数据类型(String除外)
Studentstu=newStudent("
李白"
"
referenceTran(stu);
//杜甫
staticvoidbaseTran(inty){
y=y+10;
staticvoidreferenceTran(Studentstu){
stu.name="
杜甫"
类的get,set方法会使用Split方法使用
//private只能在当前类中可以访问,访问方式.
privateStringname;
privateStringgender;
privateintage;
privateintheight;
publicStudent(Stringname,Stringgender,intage,intheight){
super();
//alt+shift+s
//获取属性值
publicStringgetName(){
returnname;
//修改或设置属性
publicvoidsetName(Stringname){
publicStringgetGender(){
returngender;
publicvoidsetGender(Stringgender){
publicintgetAge(){
returnage;
publicvoidsetAge(intage){
publicintgetHeight(){
returnheight;
publicvoidsetHeight(intheight){
//toString方法输出学生基本信息
@Override
publicStringtoString(){
name="
+name+"
gender="
+gender+"
age="
+age+"
height="
+height;
stu.setName("
stu.setGender("
stu.setAge(20);
stu.setHeight(180);
System.out.println(stu.toString());
//修改学生信息
//获取年龄
System.out.println(stu.getAge());
//构造器初始化数据
Studentstu1=newStudent("
李清照"
女"
20,180);
System.out.println(stu1.toString());
//String的split分割字符串,得到一个字符串数组
Scannerscanner=newScanner(System.in);
请输入信息:
姓名性别年龄身高"
Stringstr=scanner.nextLine();
String[]info=str.split("
if(info.length==4){
//字符串怎样转换为整数
Strings="
123"
intx=Integer.parseInt(s);
Studentstu2=newStudent(info[0],info[1],
Integer.parseInt(info[2]),Integer.parseInt(info[3]));
System.out.println(stu2.toString());
作业:
编写一个应用程序绘制一个如下的操作菜单并实现功能(定义一个类学生表示学生)
nextLine(),默认一共有100个学生,一维数组-》一维对象(student)数组
*****************************
|1.增加学生|
|2.显示学生|
|3.修改学生|
|4.删除学生|
|5.查找学生|
|6.退出程序|
|请输入选择(1-6):
|
*****************************
1、Scanner学号姓名班级
2、数组-》对象数组-》Student[]102=5
当前有多少位学生,一共多少页,默认显示显示第一页数据,
提供功能,输入页数时,显示指定页数的数据
3、构造器实现学生信息的初始化
4、添加学生就是赋值,删除学生就是赋值(null)
5、修改学生,遍历学生是否存在-》yes-》set方法修改学生信息
6、显示学生,遍历数组,toString方法输出学生信息
7、退出,循环次数不固定,所以使用while循环,控制while循环的准入条件实现退出
提示:
*主要完成功能
*
publicclassTool{
publicvoidoutputMenu(){
publicvoidadd(Studentstu){
publicvoidupdate(){
publicvoiddelete(Stringsno){
publicvoidselectBySno(Stringsno){
publicvoidselectAll(){
publicclassDemo{
//控制主逻辑,方法流程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA4OO1