Java一个典型类的定义和UML图

一个典型类的定义:

 1 /**
 2  * 一个典型类的定义
 3  * @author 房廷飞
 4  *
 5  */
 6 public class TextObject {
 7     //属性
 8     int id;
 9     String name;
10     int age;
11     //方法
12     Computer com;
13     void study() {
14         System.out.println("我在认真学习!"+com.brand);
15
16     }
17     void play() {
18         System.out.println("我在玩游戏!王者农药!");
19
20     }
21     //构造方法,用于创建这个类的对象。无参的构造方法可以由系统自动创建。
22     TextObject() {
23
24     }
25     //程序执行的入口,必须要有!
26     public static void main(String[]args) {
27         TextObject text =new TextObject();    //创建一个对象
28         text.id=1001;
29         text.age=18;
30         text.name="房廷飞";
31         Computer c1=new Computer();
32         c1.brand="联想";
33         text.com=c1;
34         text.play();
35         text.study();
36     }
37 }
38 //一个java文件可以有多个class类,但只能有一个public修饰的类
39 class Computer{
40     String brand;
41 }

Java虚拟机的内存可以分为三个区域:栈stack、堆heap、方法区method area。

栈的特点如下:

  1. 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)

  2. JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)

  3. 栈属于线程私有,不能实现线程间的共享!

  4. 栈的存储特性是“先进后出,后进先出”

  5. 栈是由系统自动分配,速度快!栈是一个连续的内存空间!

堆的特点如下:

  1. 堆用于存储创建好的对象和数组(数组也是对象)

  2. JVM只有一个堆,被所有线程共享

  3. 堆是一个不连续的内存空间,分配灵活,速度慢!

方法区(又叫静态区)特点如下:

  1. JVM只有一个方法区,被所有线程共享!

  2. 方法区实际也是堆,只是用于存储类、常量相关的信息!

  3. 用来存放程序中永远是不变或唯一的内容。(类信息【Class对象】、静态变量、字符串常量等)

UML图示例:

2019-02-14    21:29:55    房廷飞

原文地址:https://www.cnblogs.com/fangtingfei/p/10380851.html

时间: 2024-11-05 18:27:22

Java一个典型类的定义和UML图的相关文章

java问题:类的定义,对象的定义?

java问题:类的定义,对象的定义? 类是一组数据和函数的集合,只是抽象的概念,它的作用就是生成对象,它生成对象后,就为这个对象分了一块存储区,类可以生成无限多个对象,每个对象都有自己的存储区,在类里定义的数据和函数在这个对象里都有了.在Java当中,对象是一个类的实体.

Java中主类中定义方法加static和不加static的区别

Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用,后者必须先实例化后用实例调用) 知识点:1.Getter and Setter 的应用 2.局部变量与成员变量(也可叫做全局变量) 3.Static关键字的用法 a.成员变量被static修饰后的所有类的共享属性 b.方法被static修饰之后,在本类内调用的类名省略问题;以及不用Static,即使在本类内也必须先实例化 4.This关键字的用法 this:是当前类的对象引用.简单的记,它就代表当前

[Java学习]面向对象-package;内部类;UML图表示六种关系

package 软件包 类名前加入命名空间(包),解决命名冲突问题. 定义格式:公司域名倒叙.项目名.模块名; package语句写在文件第一行 使用import语句导入package java.lang; 软件包下的所有类系统自动导入. 编译 javac -d 生成路径 java源文件路径 运行 java 完整类名 内部类 基本 定义:类里面的类. 好处:内部类可以访问其外部类的私有数据. 分为 :静态内部类,成员内部类,局部内部类,匿名内部类 静态内部类 调用静态内部类的静态方法: Oute

Java基础(42):Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在祝方法调用,后者必须先实例化后用实例调用)

1 package lsg.ap.april4th2; 2 /* 3 知识点:1.Getter and Setter 的应用 4 2.局部变量与成员变量(也可叫做全局变量) 5 3.Static关键字的用法 6 a.成员变量被static修饰后的所有类的共享属性 7 b.方法被static修饰之后,在本类内调用的类名省略问题;以及不用Static,即使在本类内也必须先实例化 8 4.This关键字的用法 9 this:是当前类的对象引用.简单的记,它就代表当前类的一个对象. 10 11 注意:谁

Java一个枚举类的2种实现。

实现方式一: public enum Operation { PLUS, MINUS, TIMES, DIVIDE; double apply(double x, double y) { switch (this) { case PLUS: return x + y; case MINUS: return x - y; case TIMES: return x * y; case DIVIDE: return x / y; } throw new AssertionError("Unknow o

eclipse下生成Java类图和时序图,生成UML图

最近老板让我做类图和时序图,提苦恼的,完全不会,就从网上整理了些 1.安装和使用AmaterasUML 安装AmaterasUML前,需要先安装GEF 采用eclipse在线安装方式安装就好. eclipse在线安装GEF的地址:http://download.eclipse.org/tools/gef/updates/releases/ 安装好GEF后,安装AmaterasUML 先到如下地址下载:http://sourceforge.jp/projects/amateras/download

OpenJDK 源码阅读之 Java 字节流输出类的实现

Java 的输入输出总是给人一种很混乱的感觉,要想把这个问题搞清楚,必须对各种与输入输出相关的类之间的关系有所了解.只有你了解了他们之间的关系,知道设计这个类的目的是什么,才能更从容的使用他们. 这是这个系列的第二篇,描述字节输出类的实现,第一篇见:OpenJDK 源码阅读之 Java 字节流输入类的实现 字节流输出 图1 Java 字节输出类 OutputStream OutputStream是所有字节输出类的超类,这是个抽象类,需要实现其中定义的 write 函数,才能有实用的功能. pub

Ember.js 入门指南——类的定义、初始化、继承

本系列文章全部从(http://ibeginner.sinaapp.com/)迁移过来,欢迎访问原网站. Ember JS的类也具有高级语言的许多特性,其实现方式也与高级语言(如Java)非常类似.Ember类继承使用extend()方法,可以在方法传入参数,但是参数要以hash列表方式传入.关于类的命名规则在此不做介绍,自己网上找一份Java的命名规则的教材看看即可. 开始之前先做好准备工作,首先创建一个HTML文件,并引入Ember JS所必须的文件.由于博客不支持HTML标签输入,详细代码

开发技巧----------项目中常量类的定义方式

问题: 有开发经验的同学都知道,常量类是一个最常用的定义数据字典的方式.但是随着项目的开发时间和开发团队的变化经常会出现2中特别苦逼的情况.第一种情况是项目中到处都能看到各种各样的常量类:第二种情况是一个常量类里定义非常多的常量,甚至有的超过100了.这两种情况的缺点估计大家都非常的清楚,第一种代码离散.冗余.维护难:第二种也是维护难,更痛苦的时候用ide的时候很难找到自己需要的常量. 解决办法: 1.使用静态内部类对常量进行分组(可以多级分组,但是建议最多3级) 2.外部文件(这里不讨论) 3