java中类模型_java中的数据模型类

packagecom.aaa.zxf.ajax.test;importjava.io.Serializable;/*** java中的继承。

*

* 一、数据模型类

* 数据模型类:用来存取数据库数据对应的java类

* 理解成:需要将先有的类完善成标准的数据模型类

*

*

* 二、访问控制修饰符

*

* ?public : 公共的。 对所有类可见(在同一个工程中 任何类都可以调用)。使用对象:类、接口、成员变量、方法

* ?protected : (包权限和继承权限 )对同一包内的类或所有子类可见。使用对象:成员变量、方法。 注意:不能修饰类(外部类)。包权限指的使 即使没有关系但是在同一个包中 可以访问 继承权限指的是 即使不在同一个包中但是有继承关系 依然可以访问

* ?default (即缺省,什么也不写): 包权限 在同一包内可见,不使用任何修饰符。使用对象:类、接口、成员变量、方法。 注意 什么都不写并不代表没有权限修饰符 而是代表默认的权限修饰

* ?private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

*

* 我们可以可以通过以下表来说明访问权限:

* 访问控制

* 修饰符 当前类 同一包内 子孙类 其他包

* public Y Y Y Y

* protected Y Y Y N

* default Y Y N N

* private Y N N N

**/

public classJavaJiCheng {public static voidmain(String[] args) {

People p= newPeople();//p.age = -45;//age -45? 如何解决? 给age 设置 set方法 进行基本的判断。。//

//p.name = "haha";//System.out.println("name="+p.name+" age="+p.age );

/*** 通过set 赋值

* get 获得*/People p1= newPeople();

p1.setAge(45);

p1.setName("xixi");int age =p1.getAge();

}

}//1.创建一个数据模型类

classPeople{private intage;privateString name;/*** 我们希望 有了set方法之后 就不要使用 打点调用的形式了。

* 解决方案:将成员变量的权限修饰符设定为 私有的。*/

void setAge(intage){//三元运算符 不大于0 就将age 赋值为0

this.age = age>0 ? age :0;

}voidsetName(String name){this.name =name;

}/*** 解决私有属性无法调用的问题

*

* 建立一个 get方法*/

public intgetAge(){returnage;

}publicString getName(){returnname;

}

}//数据模型类最终版

class Book implementsSerializable {private intbookid;privateString bookname;private doubleprice;privateString autor;publicBook() {

}public Book(int bookid, String bookname, doubleprice, String autor) {this.bookid =bookid;this.bookname =bookname;this.price =price;this.autor =autor;

}public intgetBookid() {returnbookid;

}public void setBookid(intbookid) {this.bookid =bookid;

}publicString getBookname() {returnbookname;

}public voidsetBookname(String bookname) {this.bookname =bookname;

}public doublegetPrice() {returnprice;

}public void setPrice(doubleprice) {this.price =price;

}publicString getAutor() {returnautor;

}public voidsetAutor(String autor) {this.autor =autor;

}

@Overridepublic booleanequals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;

Book book=(Book) o;if (bookid != book.bookid) return false;if (Double.compare(book.price, price) != 0) return false;if (bookname != null ? !bookname.equals(book.bookname) : book.bookname != null) return false;return autor != null ? autor.equals(book.autor) : book.autor == null;

}

@Overridepublic inthashCode() {intresult;longtemp;

result=bookid;

result= 31 * result + (bookname != null ? bookname.hashCode() : 0);

temp=Double.doubleToLongBits(price);

result= 31 * result + (int) (temp ^ (temp >>> 32));

result= 31 * result + (autor != null ? autor.hashCode() : 0);returnresult;

}

@OverridepublicString toString() {return "Book{" +

"bookid=" + bookid +

", bookname=‘" + bookname + ‘\‘‘ +

", price=" + price +

", autor=‘" + autor + ‘\‘‘ +

‘}‘;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值