package com.aaa.zxf.ajax.test; import java.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 class JavaJiCheng { public static void main(String[] args) { People p = new People(); // p.age = -45; // age -45? 如何解決? 給age 設置 set方法 進行基本的判斷。。 // // p.name = "haha"; // System.out.println("name="+p.name+" age="+p.age ); /** * 通過set 賦值 * get 獲得 */ People p1 = new People(); p1.setAge(45); p1.setName("xixi"); int age = p1.getAge(); } } //1.創建一個數據模型類 class People{ private int age; private String name; /** * 我們希望 有了set方法之后 就不要使用 打點調用的形式了。 * 解決方案:將成員變量的權限修飾符設定為 私有的。 */ void setAge(int age){ // 三元運算符 不大於0 就將age 賦值為0 this.age = age>0 ? age :0; } void setName(String name){ this.name = name; } /** * 解決私有屬性無法調用的問題 * * 建立一個 get方法 */ public int getAge(){ return age; } public String getName(){ return name; } } //數據模型類最終版 class Book implements Serializable { private int bookid; private String bookname; private double price; private String autor; public Book() { } public Book(int bookid, String bookname, double price, String autor) { this.bookid = bookid; this.bookname = bookname; this.price = price; this.autor = autor; } public int getBookid() { return bookid; } public void setBookid(int bookid) { this.bookid = bookid; } public String getBookname() { return bookname; } public void setBookname(String bookname) { this.bookname = bookname; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getAutor() { return autor; } public void setAutor(String autor) { this.autor = autor; } @Override public boolean equals(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; } @Override public int hashCode() { int result; long temp; 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); return result; } @Override public String toString() { return "Book{" + "bookid=" + bookid + ", bookname='" + bookname + '\'' + ", price=" + price + ", autor='" + autor + '\'' + '}'; } }