聊聊java那些事儿 - 成员变量设计

简介: 聊聊java那些事儿 - 成员变量设计

随便唠唠啊,就当聊天了。


问大家一个问题,你认为java文件是java类吗?你可以用记事本写一个Demo.java的文本文件,编码是ansi,如果你的windows系统是简体中文的,那么所谓的ansi,其实就和GBK是一样的。在这个文件里,你可以写很多的class,但是声明为public的class只能有一个。


这就说明,java文件不等于java类。java文件可以是一大堆class的集合体,每一个class都可以通过new关键字,或者反射变成实例对象。所以,你也可以说,一个java文件就是一个程序,这个程序如果跑起来,就是一大堆对象的集合。每一个对象可以互相通信,各司其职,共同完成程序的任务。


一个java类里面有什么?


一个java类,首先是来源于某个业务的抽象。比如你要做一个会员VIP系统,那么是不是得有会员?会员的前提是客户,那么就是两个不同的概念,但是客户包含了会员。


我们先不整那么多,就说客户的概念。客户是我们口头说的一个概念,大家都知道他是什么意思。那么,如何用oop的思想去把现实中的客户变成代码呢?代码,什么代码,自然是java代码。java代码写在哪里,自然是.java的文件里。


我们用class关键字来声明一个类,类里面要写什么呢?答:要写成员变量和成员方法。写什么成员变量呢?我推荐大家用一个口诀,就是问问自己,这个概念有没有什么数据是我感兴趣的呢?这个数据就是类的基本属性。


比如,客户,我想要知道客户的名字,性别,生日。这三个都是基本属性。记住,每一个属性是需要作为程序员的你,来亲自设计的。是你来设计的,你才是设计师。


你设计成员变量,不是为了学习java知识,也不是为了应付学校老师的作业,更不是为了写这篇文章的我。一切都是为了你自己,你觉得需要加这个字段,那你就加。


不要盲目地加,你要说出你为什么要加。


比如我问你,你为什么要记录客户的生日呢?你可以说,客户都是我们的潜在会员,我知道他的生日,就可以在他生日那天给他发短信祝福,如果他到店就餐,我还可以给他折扣和过生日 。他一感动,可能就直接办VIP会员卡了。


嗯,既然如此,那你怎么联系到他呢?哦对了,我还要加一个手机号码字段。


如果你们单位有产品经理,那么这些事情可以由他去做。但是更多的情况是,产品经理只是知道大概的需求和某些细节,具体程序怎么设计,还是要你去做的。😊


第二个口诀,就是你要想想这个概念体可能会有哪些状态?比如客户是否正常?正常就是客户经常会到店消费,那么这类客户就是需要重点关注的,我们的目标就是下次说服他办卡。


不正常是啥意思呢,比如客户来店里闹事,那么这种客户你觉得还有必要劝他办卡吗?你劝他也不可能办的啊。这种的话就可以设置不正常状态,程序的设计思路就是会有一个int类型的status字段,1代表正常,2代表不正常。


当然,这个也是根据实际情况的,我不是逼你要加这个状态,如果你的系统不需要,那你就不设置。


相关文章
|
8月前
|
存储 Java 编译器
【Java变量】 局部变量、成员变量(类变量,实例变量)、方法参数传递机制
【Java变量】 局部变量、成员变量(类变量,实例变量)、方法参数传递机制
107 0
|
存储 Java
【面试题精讲】Java成员变量与局部变量的区别?
【面试题精讲】Java成员变量与局部变量的区别?
继承与隐藏:Java中父类成员变量的神秘禁忌
本文将解释为什么Java设计了这样的规则,探讨与此相关的继承和多态的概念,并说明如何在子类中访问和使用父类的成员变量。
【零基础学Java】—成员变量和局部变量(九)
【零基础学Java】—成员变量和局部变量(九)
|
3月前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
8月前
|
存储 Java 数据库连接
Java语言成员变量深入解析
Java语言成员变量深入解析
|
7月前
|
存储 Java
java成员变量详解
java成员变量详解
|
7月前
|
安全 NoSQL Java
探索Java Optional类:构造器、成员变量与方法
探索Java Optional类:构造器、成员变量与方法
|
8月前
|
存储 缓存 Java
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
【Java开发指南 | 第六篇】Java成员变量(实例变量)、 类变量(静态变量)
83 2
|
8月前
|
存储 Java
Java成员变量详解
Java成员变量详解
162 0