简单java类开发一般原则:

  1. 类名称必须有意义,再怎么说,要让人家看的明白吧
  2. 类之中所有属性必须使用private封装,并提供setter,getter方法
  3. 类之中可以有多个构造方法,但是必须保留有一个无参数构造方法
  4. 类之中不允许出现任何输出语句,所有输出必须交给被调用处
  5. 类之中需要有一个可以取得对象完整信息的方法,一般叫做getInfo(),返回String型数据
class Book {
private String name;
private int price;
private int num;
public Book() { }
public Book(String na ,int pri, int n) {
name = na;
price = pri;
num = n;
}
public book() { }
public void setName(String n) {
name = n;
}
public void setPrice(int p) {
price = p;
}
public void setNum(int n) {
num = n;
}
public String getName() {
return name;
}
public int getPrice() {
return price;
}
public int getNum() {
return num;
}
public int getMonney(int price, int num) {
return price*num;
}
public String getinfo() {
return "书名:"+name+"\n"+
"单价:"+price+"\n"+
"数量:"+num+"\n";
}
} public class test2 {
public static void main(String args[]) {
Book monney = new Book("老人与海",,);
System.out.println(monney.getinfo());
}
}

一对多关系:

实例1:

省份:

省份ID : NUMBER <pk>

省份名字: VARCHAR(50)

城市:

城市ID  : NUMBER<pk>

省份ID:NUMBER<fk>

城市名称:VARCHAR(50)

要求可以通过一个省份找到所有的城市信息,通过一个城市可以找到它对应的省份信息

//setter,getter,无参构造省略
class Province {
private int pid;
private String pname;
private City city [];
public Province(int pid, String pname) {
this.pid = pid;
this.pname = pname;
}
public String getInfo() {
return "省份ID:"+this.pid+"\n"+
"省份名字"+this.pname;
} public void setCity(City city []) {
this.city = city;
}
public City [] getCity() {
return this.city;
} } class City {
private int cid;
private String cname;
private Province province;
public City(int cid, String cname) {
this.cid = cid;
this.cname = cname;
}
public String getInfo() {
return "城市ID:"+ this.cid+"城市名字:"+this.cname;
}
public void setProvince(Province province) {
this.province = province;
}
public Province getProvince() {
return this.province;
}
} public class test1 {
public static void main(String args[]) {
//设置独立对象
Province p = new Province(1,"重庆");
City c_1 = new City(001,"渝中区");
City c_2 = new City(002,"南岸区");
//设置相关关系
c_1.setProvince(p);//一个城市属于一个省份
c_2.setProvince(p);
p.setCity(new City [] {c_1,c_2});
//获取数据
for (int x=0 ;x<p.getCity().length;x++) {
System.out.println(p.getCity()[x].getInfo());
}
System.out.println(c_1.getProvince().getInfo());
System.out.println(c_2.getProvince().getInfo()); }
}
//输出
城市ID:1城市名字:渝中区
城市ID:2城市名字:南岸区
省份ID:1
省份名字重庆
省份ID:1
省份名字重庆

实例2:

//setter,getter,无参构造省略
class Item {
private int iid;
private String iname;
private String note;
private Subitem subitem []; public Item(int iid, String iname,String note) {
this.iid = iid;
this.iname = iname;
this.note = note;
}
public String getInfo() {
return "类型ID:"+this.iid+"\n"+
"类型名字"+this.iname+"\n"+
"描述"+this.note;
} public void setSubitem (Subitem subitem []) {
this.subitem = subitem;
}
public Subitem [] getSubitem() {
return this.subitem;
}
} class Subitem {
private int subid;
private String subname;
private String note;
private Item item;
private Product product []; public Subitem(int subid, String subname,String note) {
this.subid = subid;
this.subname = subname;
this.note = note;
}
public String getInfo() {
return "子类型ID:" +this.subid+"\n"+
"子类型名字:"+this.subname+"\n"+
"描述"+this.note;
}
public void setItem(Item item) {
this.item = item;
}
public Item getItem() {
return this.item;
}
public void setProduct(Product product []) {
this.product = product;
}
public Product [] getProduct() {
return this.product;
}
} class Product {
private int pid;
private String pname;
private int price;
private Subitem subitem; public Product(int pid, String pname, int price) {
this.pid = pid;
this.pname = pname;
this.price = price;
}
public String getInfo() {
return "商品ID"+this.pid+"\n"+
"商品名称"+this.pname+"\n"+
"价格"+this.price;
}
public void setSubitem(Subitem subitem) {
this.subitem = subitem;
}
public Subitem getSubitem() {
return this.subitem;
}
}
public class test1 {
public static void main(String args[]) {
//设置独立对象
Item i = new Item(,"食品类","吃的"); Subitem sub1 = new Subitem(,"肉类","猪肉");
Subitem sub2= new Subitem(,"蔬菜类","白菜");
Subitem sub3 = new Subitem(,"坚果类","瓜子"); Product p1 = new Product(,"肥肉",);
Product p2= new Product(,"大白菜",);
Product p3 = new Product(,"甜瓜子",); //设置相关关系
sub1.setItem(i);//一个城市属于一个省份
sub2.setItem(i);
sub3.setItem(i);
i.setSubitem(new Subitem [] {sub1,sub2,sub3});
sub1.setProduct(new Product [] {p1});
sub2.setProduct(new Product [] {p2});
sub3.setProduct(new Product [] {p3}); p1.setSubitem(sub1);
p2.setSubitem(sub2);
p3.setSubitem(sub3);
//获取数据
for (int x= ;x<i.getSubitem().length;x++) {
System.out.println(i.getSubitem()[x].getInfo());
}
System.out.println(p3.getSubitem().getItem().getInfo());
}
}

JAVA基础学习之路(四)定义简单java类的更多相关文章

  1. JAVA基础学习之路(八)[1]String类的基本特点

    String类的两种定义方式: 直接赋值 通过构造方法赋值 //直接赋值 public class test2 { public static void main(String args[]) { S ...

  2. JAVA基础学习之路(一)基本概念及运算符

    JAVA基础概念: PATH: path属于操作系统的属性,是系统用来搜寻可执行文件的路径 CALSSPATH: java程序解释类文件时加载文件的路径 注释: 单行注释  // 多行注释 /*... ...

  3. Java基础学习总结(70)——开发Java项目常用的工具汇总

    要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具. 首先我们先了解完整项目开发过程,如图所示: 从上图中我们能看到一 ...

  4. Java基础_0311: 数据表与简单Java类映射

    数据表与简单Java类映射 现在假设有如下的关系表,现在要求实现如下的数据关联操作: 一个部门有多个雇员: 一个雇员有一个或零个领导 代码实现 class Dept { private int dep ...

  5. Java基础学习总结(68)——有关Java线程方面的面试题

    不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java 语言一个重要的特点就是内置了对并发的支持,让 Java 大受企业和程序员的欢迎.大多数待遇丰厚的 Java 开发职位都要求开发者 ...

  6. JAVA基础学习之路(五)数组的定义及使用

    什么是数组:就是一堆相同类型的数据放一堆(一组相关变量的集合) 定义语法: 1.声明并开辟数组 数据类型 数组名[] = new 数据类型[长度]: 2.分布完成 声明数组:数据类型 数组名 [] = ...

  7. JAVA基础学习之路(三)类定义及构造方法

    类的定义及使用 一,类的定义 class Book {//定义一个类 int price;//定义一个属性 int num; public static int getMonney(int price ...

  8. JAVA基础学习之路(七)对象数组的定义及使用

    两种定义方式: 1.动态初始化: 定义并开辟数组:类名称 对象数组名[] = new 类名称[长度] 分布按成:类名称 对象数组名[] = null: 对象数组名 = new 类名称[长度]:   2 ...

  9. JAVA基础学习之路(二)方法定义,重载,递归

    一,方法的定义: package test; public class test1 { public static void main(String args[]) { int result = ad ...

随机推荐

  1. 轻量ORM-SqlRepoEx (八)MySQL、Sql Service 迁移

    数据库变更在编程应用中是常的,MySQL.Sql Service之间的数据迁移更为常见,在 SqlRepoEx2.0DemoForAspCore中演示了,这种数据库之间切换时SqlRepoEx是如何的 ...

  2. NopCommerce学习(2) EntityFramework

    NopCommerce-EntityFramework开发:主要是Controller-Service-Repository的开发方式 操作数据库,主要对象是BaseEntity,IDbContext ...

  3. java web项目用cookie记住用户名、密码

    1.jsp页面: <% String flag = (String)session.getAttribute("flag")==null?"":(Stri ...

  4. Qt5连接Mysql环境配置

    已安装的环境:Mysql5.7 64bit ,Qt5.12 64bit. 到mysql官方下载mysql5.7 64bit的压缩包,解压,复制下图框内四个文件. 将四个文件复制到Qt安装目录下bin目 ...

  5. [MYSQL][1]创建,修改,删除表

    查看有哪些数据库: SHOW DATABASES; 创建,删除数据库: CREATE DATAABASE mydb; DROP DATABASE mydb; 查看有哪些表: SHOW TABLES; ...

  6. background-image 背景图片的设置

    background-image 背景图片的设置 属性:background-image: url(img/banner.jpg); 1.设置背景图的宽度 background-size: 400px ...

  7. 【Hive三】Hive理论

    1. Hive基础 1. Hive基础 Hive基本概念 引入原因: Hive是什么 Hive数据管理 四种数据模型 Hive内部表和外部表 Hive数据类型 Hive的优化 Map的优化: Redu ...

  8. kubernetes资源清单定义

    apiVersion: v1 #必选,版本号,例如v1,版本号必须可以用 kubectl api-versions 查询到 . kind: Pod #必选,Pod metadata: #必选,元数据 ...

  9. python兵器谱之re模块与正则表达式

    一.正则表达式 ·1.正则表达式的应用场景: 应用特有的规则,给我需要的符合规则的字符串,在字符串中只有符合条件的才会被匹配和从大段的字符串中提取需要的数据 ·匹配字符串的规则: ·1.字符串:用户输 ...

  10. python新手学习之文件读写之修改

    文件除r.w.a方式打开外,还可以有多种组合方式如r+ w+ a+等多种方式 1.r+ 读写模式介绍,开始读是从一行开始读,写永远从最后开始写(类似于追加) # f = open("test ...