面向对象基础05综合讲解1.docx

上传人:b****7 文档编号:8962356 上传时间:2023-02-02 格式:DOCX 页数:17 大小:1.11MB
下载 相关 举报
面向对象基础05综合讲解1.docx_第1页
第1页 / 共17页
面向对象基础05综合讲解1.docx_第2页
第2页 / 共17页
面向对象基础05综合讲解1.docx_第3页
第3页 / 共17页
面向对象基础05综合讲解1.docx_第4页
第4页 / 共17页
面向对象基础05综合讲解1.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

面向对象基础05综合讲解1.docx

《面向对象基础05综合讲解1.docx》由会员分享,可在线阅读,更多相关《面向对象基础05综合讲解1.docx(17页珍藏版)》请在冰豆网上搜索。

面向对象基础05综合讲解1.docx

面向对象基础05综合讲解1

10.面向对象基础(05)

本次课程是习题课程,将之前所学到的各种知识综合应用在题目之中,并进行综合讲解,在讲解的时候为读者提供了解决问题的基本思路。

blog:

[零基础学JAVA]JavaSE面向对象部分-10.面向对象基础(05)

 

上季内容回顾:

 

1、类和对象 

2、引用的内存分配 

3、封装性 

4、构造方法 

5、String类 

6、this关键字

在编写代码之前建立好应该具备的类,之后再为类添加一些属性,属性都是需要被封装的,封装之后必须写setter和getter方法才可以访问属性,如果有需要则可以加入构造方法设置属性。

本季主要知识点:

1、题目讲解 

2、如何去分析题目

本次课程是习题课程,将之前所学到的各种知识综合应用在题目之中,并进行综合讲解,在讲解的时候为读者提供了解决问题的基本思路。

分析下这个题目哈~

我们最好先画下类图

类名

属性

方法

属性的表示:

 

权限属性名称:

类型 

-name:

String ==> privateStringname;

方法的表示:

 

权限方法名称(参数名称:

参数类型,参数名称:

参数类型):

返回值类型 

+setName(name:

String):

void ==> publicvoidsetName(Stringname)

用手工画类图会非常麻烦哈,我们可以使用jude这样的工具。

JUDE(JavaandUMLDevelopersEnvironment)1.2.1

在这里,我们新建三个类:

Student,Class_,Out

类我们定义好了后,我们再来定义下类滴属性哈,先Student类定义name、age、score属性。

属性定义后我们就定义其setter和getter方法并设置其参数。

依此类推

然后是班级Class类定义name、de.ion两个属性。

同样设置其setter和getter方法并设置参数。

最后是输出类Out,这个非常简单,只要定义一个print方法就可以了。

最后一张完整的类图就出来了哈~

在这个工具中,可以根据图形生成代码,我们看下面哈~

选择文件----导出Java

选择存放的路径

现在目录中就生成了这三个类文件

我们把它们合并到一个文件中,这样直观一点哈~

验证下效果哈~

修改代码为其加入构造方法

class Student{ 

  private Stringname; 

  private int age; 

  private float score; 

  //修改程序,加入一个构造 

  public Student(){} 

  public Student(Stringname,int age,float score){ 

    this.setName(name); 

    this.setAge(age); 

    this.setScore(score); 

  } 

  public void setName(Stringname){ 

    this.name=name; 

  } 

  public StringgetName(){ 

    return this.name; 

  } 

  public void setAge(int age){ 

    this.age=age; 

  } 

  public int getAge(){ 

    return this.age; 

  } 

  public void setScore(float score){ 

    this.score=score; 

  } 

  public float getScore(){ 

    return this.score; 

  } 

class Class_{ 

  private Stringname; 

  private Stringde.ion; 

  public Class_(){} 

  public Class_(Stringname,Stringde.ion){ 

    this.setName(name); 

    this.setDe.ion(de.ion); 

  } 

  public void setName(Stringname){ 

    this.name=name; 

  } 

  public StringgetName(){ 

    return this.name; 

  } 

  public void setDe.ion(Stringde.ion){ 

    this.de.ion=de.ion; 

  } 

  public StringgetDe.ion(){ 

    return this.de.ion; 

  } 

class Out{ 

  public void print(Studentstu,Class_cla){ 

    System.out.println("学生姓名:

"+stu.getName()); 

    System.out.println("学生年龄:

"+stu.getAge()); 

    System.out.println("学生成绩:

"+stu.getScore()); 

    System.out.println("班级名称:

"+cla.getName()); 

    System.out.println("班级描述:

"+cla.getDe.ion()); 

  } 

public class Demo02 

  public static void main(Stringargs[]){ 

    Students= new Student(); 

    s.setName("王乾"); 

    s.setAge(27); 

    s.setScore(99.9f); 

    Class_c= new Class_(); 

    c.setName("JAVA强化班"); 

    c.setDe.ion("学习JAVA技术强化班"); 

    new Out().print(s,c); 

  } 

}

 

加入构造方法后效果怎么样呢?

验证一下哈~

程序我们已经修改了,我们可以将程序代码导入到工具之中,自动生成类图。

首先我们新建一个文件

然后选择导入Java

找到Java程序的路径

单击start

如果属性是两个单词的,则第一个单词的首字母小写,之后每个单词的首字母大写。

/* 

1、定义好要使用的类 

2、定义好类中的属性 

3、为属性封装 

4、为封装后的属性设置setter和getter方法 

5、如果需要可以为类中添加构造方法 

6、为类中添加所需要的其他方法 

*/ 

class Student 

  //学生编号 

  private Stringstuno; 

  //学生姓名 

  private Stringname; 

  //数学成绩 

  private float mathScore; 

  //英语成绩 

  private float englishScore; 

  //计算机成绩 

  private float computerScore; 

  public Student(){} 

  public Student(Stringstuno,Stringname,float mathScore,float englishScore,float computerScore){ 

         this.setStuno(stuno); 

    this.setName(name); 

    this.setMathScore(mathScore); 

    this.setEnglishScore(englishScore); 

    this.setComputerScore(computerScore); 

  } 

  public void setStuno(Stringstuno){ 

    this.stuno=stuno; 

  } 

  public void setName(Stringname){ 

    this.name=name; 

  } 

  public void setMathScore(float mathScore) 

  { 

    this.mathScore=mathScore; 

  } 

  public void setEnglishScore(float englishScore) 

  { 

    this.englishScore=englishScore; 

  } 

  public void setComputerScore(float computerScore) 

  { 

    puterScore=computerScore; 

  } 

  public StringgetStuno(){ 

    return this.stuno; 

  } 

  public StringgetName(){ 

         return this.name; 

  } 

  public float getMathScore(){ 

         return this.mathScore; 

  } 

  public float getEnglishScore(){ 

         return this.englishScore; 

  } 

  public float getComputerScore(){ 

         return puterScore; 

  } 

  //添加所需要的其他方法 

  //在编写类的时候一定要记住一个原则:

任何的输出绝对不能在类中完成 

  //所有要输出的内容在类中只是把值返回来,交给调用处输出 

  //取得全部成绩的总和 

  public float getSum(){ 

         return this.mathScore+this.englishScore+puterScore; 

  } 

  //取得平均成绩 

  public float getAvg(){ 

         return this.getSum()/3; 

  } 

  //取最高的成绩 

  public float getMax(){ 

         //三个成绩相比 

    float max=0.0f; 

    if (this.mathScore>this.englishScore) 

    { 

      max= this.mathScore; 

    } 

    else 

    { 

      max= this.englishScore; 

    } 

    if (max

    { 

      max= puterScore; 

    } 

    return max; 

  } 

  //取最低的成绩 

  public float getMin(){ 

         //三个成绩相比 

    float min=0.0f; 

    if (this.mathScore>this.englishScore) 

    { 

      min= this.englishScore; 

    } 

    else 

    { 

      min= this.mathScore; 

    } 

    if (min>puterScore) 

    { 

      min= puterScore; 

    } 

    return min; 

  } 

public class Demo03{ 

  public static void main(Stringargs[]){ 

    Students= new Student(); 

    s.setStuno("s01"); 

    s.setName("王乾"); 

    s.setMathScore(89.8f); 

    s.setEnglishScore(99.0f); 

    s.setComputerScore(88.8f); 

    System.out.println(s.getName()+"的成绩单("+s.getStuno()+"):

"); 

    System.out.println("\t|-总成绩:

"+s.getSum()); 

    System.out.println("\t|-平均成绩:

"+s.getAvg()); 

    System.out.println("\t|-最高成绩:

"+s.getMax()); 

    System.out.println("\t|-最低成绩:

"+s.getMin()); 

  } 

};

 

测试下效果

一般来说分析面向对象程序的步骤:

 

1、可以画一些类的草图 

2、之后定义每个类中的属性,属性定义完之后必须封装 

3、封装的属性如果需要被外部所访问,则肯定必须写setter和getter 

4、如果需要在对象实例化时可以为其属性赋初始值,则可以加入构造方法,如果有必要则可以加入多个构造(一个是无参的,其他的是有参的) 

5、为类中添加程序所必须的方法 

6、进行测试

记住:

 

开发中main方法就是一个测试端,只在里面写少量的代码即可,不可多写,也可以把main方法称为客户端。

总结 

通过这一季的习题练习哈,我们一定要培养面向对象的解决的思路起来哈~~~

#########################################################################

本文出自“王乾De技术博客”博客,谢绝转载!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1