java 人为对象如何设计属性及方法

举个例子:
class People{
private int id; //身份证
private String name; //姓名
private String address; //地址
private int age; //年龄
private String birthday; //出生日期(可用Date类型)
private String favor; //爱好
private String telNumber; //电话号码
private String qq; //QQ号
private String email; //e_mail

public People(int id, String name, String address, int age, String birthday, String favor, String telNumber, String qq, String email) {
this.id = id;
this.name = name;
this.address = address;
this.age = age;
this.birthday = birthday;
this.favor = favor;
this.telNumber = telNumber;
this.qq = qq;
this.email = email;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getBirthday() {
return birthday;
}

public void setBirthday(String birthday) {
this.birthday = birthday;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getFavor() {
return favor;
}

public void setFavor(String favor) {
this.favor = favor;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getQq() {
return qq;
}

public void setQq(String qq) {
this.qq = qq;
}

public String getTelNumber() {
return telNumber;
}

public void setTelNumber(String telNumber) {
this.telNumber = telNumber;
}
}

Ⅱ JAVA面向对象设计有哪些原则

甚至还有经验丰富的Java程序员没有听说过OOPS和SOLID设计原则,他们根本不知道设计原则的好处,也不知道如何依照这些原则来进行编程。 众所周知,Java编程最基本的原则就是要追求高内聚和低耦合的解决方案和代码模块设计。查看Apache和Sun的开放源代码能帮助你发现其他Java设计原则在这些代码中的实际运用。Java DevelopmentKit则遵循以下模式:BorderFactory类中的工厂模式、Runtime类中的单件模式。 原则1:DRY(Don'trepeatyourself) 即不要写重复的代码,而是用"abstraction"类来抽象公有的东西。如果你需要多次用到一个硬编码值,那么可以设为公共常量;如果你要在两个以上的地方使用一个代码块,那么可以将它设为一个独立的方法。SOLID设计原则的优点是易于维护,但要注意,不要滥用,plicate不是针对代码,而是针对功能。这意味着,即使用公共代码来验证OrderID和SSN,二者也不会是相同的。使用公共代码来实现两个不同的功能,其实就是近似地把这两个功能永远捆绑到了一起,如果OrderID改变了其格式,SSN验证代码也会中断。因此要慎用这种组合,不要随意捆绑类似但不相关的功能。 原则2:封装变化 在软件领域中唯一不变的就是"Change",因此封装你认为或猜测未来将发生变化的代码。OOPS设计模式的优点在于易于测试和维护封装的代码。如果你使用Java编码,可以默认私有化变量和方法,并逐步增加访问权限,比如从private到protected和notpublic.有几种Java设计模式也使用封装,比如Factory设计模式是封装"对象创建",其灵活性使得之后引进新代码不会对现有的代码造成影响。 原则3:开闭原则 即对扩展开放,对修改关闭。这是另一种非常棒的设计原则,可以防止其他人更改已经测试好的代码。理论上,可以在不修改原有的模块的基础上,扩展功能。这也是开闭原则的宗旨。 原则4:单一职责原则 类被修改的几率很大,因此应该专注于单一的功能。如果你把多个功能放在同一个类中,功能之间就形成了关联,改变其中一个功能,有可能中止另一个功能,这时就需要新一轮的测试来避免可能出现的问题。 原则5:依赖注入或倒置原则 这个设计原则的亮点在于任何被DI框架注入的类很容易用mock对象进行测试和维护,因为对象创建代码集中在框架中,客户端代码也不混乱。有很多方式可以实现依赖倒置,比如像AspectJ等的AOP(AspectOrientedprogramming)框架使用的字节码技术,或Spring框架使用的代理等。 原则6:优先利用组合而非继承 如果可能的话,优先利用组合而不是继承。一些人可能会质疑,但我发现,组合比继承灵活得多。组合允许在运行期间通过设置类的属性来改变类的行为,也可以通过使用接口来组合一个类,它提供了更高的灵活性,并可以随时实现。《EffectiveJava》也推荐此原则。 原则7:里氏代换原则(LSP) 根据该原则,子类必须能够替换掉它们的基类,也就是说使用基类的方法或函数能够顺利地引用子类对象。LSP原则与单一职责原则和接口分离原则密切相关,如果一个类比子类具备更多功能,很有可能某些功能会失效,这就违反了LSP原则。为了遵循该设计原则,派生类或子类必须增强功能。 原则8:接口分离原则 采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好。设计接口很棘手,因为一旦释放接口,你就无法在不中断执行的情况下改变它。在Java中,该原则的另一个优势在于,在任何类使用接口之前,接口不利于实现所有的方法,所以单一的功能意味着更少的实现方法。 原则9:针对接口编程,而不是针对实现编程 该原则可以使代码更加灵活,以便可以在任何接口实现中使用。因此,在Java中最好使用变量接口类型、方法返回类型、方法参数类型等。《EffectiveJava》和《headfirstdesignpattern》书中也有提到。 原则10:委托原则 该原则最典型的例子是Java中的equals()和hashCode()方法。为了平等地比较两个对象,我们用类本身而不是客户端类来做比较。这个设计原则的好处是没有重复的代码,而且很容易对其进行修改。 总之,希望这些面向对象的设计原则能帮助你写出更灵活更好的代码。理论是第一步,更重要的是需要开发者在实践中去运用和体会。

Ⅲ JAVA中什么叫基于对象的设计程序

面向对象是把所有东西看成一个对象去操作,利于理解,扩展,维护等,也就是它的特性:封装、继承、多态带来的一些好处
相关的还有面向过程、面向切面等
为什么java叫面向对象,是因为早些时候很多语言都面向过程的吧,像c
和一些脚本语言
bat

总的来说,面向过程就是一行行执行,可以有跳转到其它函数继续一行行执行
而java是可以通过调用其它对象的方法去执行,并且可以继承,接口多实现等,所以是面向对象的编程,也就是你说的基于对象的程序设计

Ⅳ 面向程序对象设计就是java

面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。
面向对象语言包括Object-C,C++,Self,Eiffl,smalltalk,java等等。
java只是面向对象语言中的一种语言。

Ⅳ Java面向对象编程类的设计问题

英雄类



私有
名字

私有
气血

私有
经验

私有
等级

set气血(气血)//用来修改气血





set经验(传某种怪物)



假如怪物的气血等于0

经验++多少;

if(经验==?)



升级





get气血(气血)//用来查看气血







怪物类



向英雄一样有自己的属性方法



某种怪物类
继承怪物类



有自己的属性方法

Ⅵ java设计一个对象类,该类具有下列服务:

/**
* 文字列が半角英数字のみかをチェックする
*
* @param txt
* チェック文字列
* @return boolean 空文字列の场合は、trueを返し、<br>
* 文字列はShift_JISのエンコードに変换失败の场合、falseを返す<br>
*
*/
public static final boolean isHalfENGNum(String txt) {
StringBuffer checkText = null;

if (txt == null) {
return true;
}
checkText = new StringBuffer(txt);
for (int i = 0; i < checkText.length(); i++) {
String subcheckText = checkText.substring(i, i + 1);
if ((matches(subcheckText, "([a-zA-Z]+)") == false) && (matches(subcheckText, "([0-9]+)") == false)) {
return false;
}
}
return true;
}

/**
* 文字列が半角数字のみかをチェックする
*
* @param txt
* チェック文字列
* @return boolean 空文字列の场合は、trueを返し、<br>
* <br>
*
*/
public static final boolean isHalfNum(String txt) {
if (txt == null) {
return true;
}
if (matches(txt, "([0-9]+)")) {
return true;
}
return false;
}

对日期校验只用写一个正则表达式
^[1-9]\d{3}[-](0[1-9]|1[012])[-]([0][1-9]|[12]\d|3[01])$
然后把你传进来的字符串与这个正则表达式比较!
身份证同样
^[1-9]\d{17}$这是对18位的身份证进行校验

Ⅶ java设计一个人的类


importjava.util.Random;

publicclassPerson{
//姓名
privateStringname;
//性别
privateStringsex;
//年龄
privateintage;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetSex(){
returnsex;
}
publicvoidsetSex(Stringsex){
this.sex=sex;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
//方法一
publicvoidfirstfunction(){
this.setName("风吹激动单达产");
this.setSex("人妖");
System.out.println("睡觉:"+this.getName()+"正在睡觉。");
System.out.println("跳舞:一个"+this.getSex()+"人正在跳舞,左三圈右三圈...");
}
//方法二
publicStringsecondfunction(){
this.setName("风吹激动单达产");
Stringhua="";
Randomra=newRandom();
intaa=(int)(0+Math.random()*(2+1));
if(aa==0){
hua="玫瑰花";
}elseif(aa==1){
hua="百合花";
}elseif(aa==2){
hua="月季花";
}else{
hua="菊花";
}
returnthis.getName()+"送给潘金莲一束"+hua;
}
//方法三
@SuppressWarnings("unused")
publicvoidthirdfunction(intmoney,Stringname){
this.setName("风吹激动单达产");
if(name!=null||name!=""){
System.out.println(name+"正在打"+this.getName());
}else{
if(money<=0){
System.out.println("你是小气鬼。");
}elseif(money>0&&money<=50){
System.out.println("谢谢你!");
}elseif(money>50&&money<=10000){
System.out.println("你是个好人!");
}else{
System.out.println("你是我的救星啊!我代表八辈祖宗感谢你!做鬼都不会放过你的!");
}
}
}
//方法四
(intmoney){
Stringyan="";
switch(money){
case0:
yan="无烟";
break;
case1:
yan="无烟";
break;
case2:
yan="新石家庄烟";
break;
case5:
yan="七匹狼烟";
break;
case6:
yan="红石二代烟";
break;
case7:
yan="红塔山烟";
break;
case10:
yan="玫瑰钻烟";
break;
case15:
yan="金石烟";
break;
case23:
yan="玉溪烟";
break;
case65:
yan="中华烟";
break;
default:
yan="无烟";
break;
}
returnyan;
}
publicintfourthfunctionoushu(intoushu){
intstart=0;
if(oushu>1){
for(inti=1;i<oushu;i++){
if(i%2==0){
start++;
}
}
}

returnstart;
}
publicintfourthfunctiondanshu(intone,inttwo){
intsum=0;
if(one<two){
for(inti=one;i<two;i++){
sum=sum+i;
}
sum=sum-one;
}elseif(one>two){
for(inti=two;i<one;i++){
sum=sum+i;
}
sum=sum-two;
}else{
sum=0;
}

returnsum;
}
publicstaticvoidmain(String[]args){
Personss=newPerson();

System.out.println(ss.fourthfunctionmoney(5));
}
}

Ⅷ java面向对象设计

不知复道你想设计成什么样子。制。。最简单的话可以:
public class BaseDoor{
public void openDoor(){...}
public void closeDoor(){...}
}

然后其他的门继承这个类。

不过更合理的设计是使用策略模式~不是很好写。。。你可以上网查一下资料。希望你点赞~