Java11-java语法基础(十)类设计综合案例

一、类综合设计方法

1、类设计步骤

(1)分析数据成员

(2)分析成员方法和构造方法

(3)画出类图

(4)编码测试

2、具体问题

1)分析数据成员

(1)访问控制修饰符

(2)数据成员名称的定义

(3)数据成员类型的定义

(4)初始值

序号

访问控制修饰符

数据成员类型

数据成员名称

说明

1

private

String

studentId

学号

2

private

String

name

姓名

3

private

double

score

成绩

……

……

……

……

……

2)分析构造方法和成员方法

(1)构造方法用来初始化对象:

使用三个构造方法:空构造方法,基本信息,全部信息。具体如下图

(2)成员方法表示成员的动态特征,即对象的行为,包括setters、getters和功能方法。

3)画出类图

利用UML工具分析数据成员和成员方法画出类结构图

- studentId:String(“-”表示私有的private)

+ getStudentId:String(“+”表示公有的public)

o setStudentClass:void(“o”表示protected)

软件:powerdesigner

PowerDesigner使用方法

1、file---new Model---Model types---OOM---Class Diagram,在下边命名,语言为java

2、右侧---toolbox---Class Diagram---class(第二个图标)

二、static关键字

一个类产生实例化对象时,将分别开辟栈内存和堆内存,栈内存存放对象名称,堆内存存放对象的数据成员。

1、应用

1)修饰数据成员,成为类成员,也称静态成员,数据成员被该类的所有对象所共享。

定义:static 数据类型 数据成员名;

访问:类名.静态成员;

2)修饰成员方法,成员方法可以直接被类调用

3)修饰代码块,在对象实例化时这些代码块被执行。

强调:

(1)通过对象名.静态成员可以访问对象,但一旦更改某个对象的静态属性,其他对象的该静态属性也会改变。

(2)静态方法只能调用静态数据成员,不能调用非静态数据成员。

(3)非静态方法可以访问调用静态成员和方法,也可以访问调用非静态数据成员和方法。

2)静态代码块/静态初始化块:只会在类加载时初始化一次

static{

初始化内容

}

2、原理:JVM初始化对象的过程

3、main方法

四、对象数组

声明:类名[] 对象名 = new 类名[数组长度];

赋值:类名[] 对象名 = {};

Java11-java基础语法(十)类设计综合案例的更多相关文章

  1. Java基础语法 - 面向对象 - 类的主方法main方法

    主方法是类的入口点,它指定了程序从何处开始,提供对程序流向的控制.Java编译器通过主方法来执行程序. 主方法的语法如下: /* a.主方法是静态的,如果要直接在主方法中调用其它方法,则该方法必须也是 ...

  2. Java基础语法<十二> 泛型程序设计

    1 意义 泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用. 常见应用 : ArrayList 2 K T V E ? object等的含义 类型变量使用大写形式 E – Element ( ...

  3. Java基础语法<十> Jar文件

    1 JAR文件            java归档文件,压缩的            jdk/bin jar工具制作jar文件              jar程序选项 1.1清单文件         ...

  4. Java基础语法(自定义类、ArrayList集合)

    Java基础语法 今日内容介绍 u 自定义类 u ArrayList集合 第1章 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类 ...

  5. 075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现

    075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现 本文知识点:综合案例-数组移位-主方法功能4的实现 说明:因为 ...

  6. 074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现

    074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现 本文知识点:综合案例-数组移位-主方法功能3的实现 说明:因为 ...

  7. 073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现

    073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现 本文知识点:综合案例-数组移位-主方法功能1和2的实现 说 ...

  8. 072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法

    072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法 本文知识点:综合案例-数组移位-在指定位置处插入数据方法 ...

  9. 071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法

    071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法 本文知识点:综合案例-数组移位-显示数组当中所有元素 ...

随机推荐

  1. vue.js 组件引用之初级 之二

    1. template 标签也可以实现替换,这样可以省去script标签了 <!DOCTYPE html> <html lang="en"> <hea ...

  2. Linux学习笔记--vim

    Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. vim的三种模式 命令模式(Command mode),输入模式(Insert m ...

  3. UGUI 判断元素进入舞台

    void LateUpdate () { if(!_isLoaded){ RectTransform rectt=this.GetComponent<RectTransform>(); f ...

  4. RabbitMQ系列教程之四:路由(Routing)(转载)

    RabbitMQ系列教程之四:路由(Routing) (使用Net客户端) 在上一个教程中,我们构建了一个简单的日志系统,我们能够向许多消息接受者广播发送日志消息. 在本教程中,我们将为其添加一项功能 ...

  5. js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)【转载】

    我们或多或少都使用过各式各样的富文本编辑器,其中有一个很方便功能,复制一张图片然后粘贴进文本框,这张图片就被上传了,那么这个方便的功能是如何实现的呢? 原理分析 提取操作:复制=>粘贴=> ...

  6. JS 打印图片

    在使用window.print()进行打印时,打印的内容可能会包含图片内容,此时的图片内容不能设置为背景图片,否则将无法再打印页面显示. <!doctype html> <html& ...

  7. avalon2学习教程02之vm

    avalon2的vm是一个非常重要的东西,其设计原型最初脱胎于knockout.js,但到avalon1.6中,终于寻得自己的方案,更精简,更易用,更魔幻. vm是一种特殊的数据结构,看起来像普通对象 ...

  8. 14.连接池.md

    目录 连接池定义 常用开源连接池: DBCP: C3P0 连接池定义 使用统一的规范:javax.sql.DataSource实现统一编程 常用开源连接池: DBCP:tomcat C3P0:hibe ...

  9. nginx优化——包括https、keepalive等

    一.nginx之tcp_nopush.tcp_nodelay.sendfile 1.TCP_NODELAY你怎么可以强制 socket 在它的缓冲区里发送数据?一个解决方案是 TCP 堆栈的 TCP_ ...

  10. hdu2973-YAPTCHA-(欧拉筛+威尔逊定理+前缀和)

    YAPTCHA Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...