简单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. JQuery给一个元素绑定两次点击事件(第二次点击事件)

    由于项目的要求,需要给复选框设置样式,初始样式:,第一次点击的时候显示,第二次点击时候需要改变该样式:. 设计思路: 当点击次数为奇数时显示带有颜色的图片 当点击次数为偶数时显示没有颜色的图片 下边是 ...

  2. Javascript混淆与解混淆的那些事儿

    像软件加密与解密一样,javascript的混淆与解混淆同属于同一个范畴.道高一尺,魔高一丈.没有永恒的黑,也没有永恒的白.一切都是资本市场驱动行为,现在都流行你能为人解决什么问题,这个概念.那么市场 ...

  3. LeetCode 中级 - 组合总和(105)

    给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限制重复被选 ...

  4. netstat命令的用法

    netstat用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.利用netstat指令可让你得知整个Linux系统的网络情况.参数:-a或–all 显示 ...

  5. Java5~11新特性

    Java5~11版本新特性 Java5 Java6 Java7 Java8 Java9 Java10 Java11 Java5 Java5开发代号为Tiger(老虎),于2004-09-30发行 特性 ...

  6. js中定时器使用方法经验总结

    前言,最近在做一个音频播放项目的时候,碰到播放时间精度的问题,捣鼓了几天,最终巧妙的运用定时器去降低了错误发生频率 正题,下面是对定时器的使用总结,如有错误之处,请读者加以纠正. 延迟执行(1次) s ...

  7. HTML中汉字空格占位符

    == 普通的英文半角空格   ==   ==   == no-break space (普通的英文半角空格但不换行)   == 中文全角空格 (一个中文宽度)   ==   == en空格 (半个中文 ...

  8. Spring : Spring Security

    ==========================================================================spring-security-过滤器: 顶级Fil ...

  9. python逻辑判断 () not and or

    python逻辑判断 () not and or 优先级关系:()>not>and>or 运算符示意 not –表示取反运算. and –表示取与运算. or –表示取或运算. or ...

  10. 从零开始一个http服务器(二)-请求request解析

    从零开始一个http服务器 (二) 代码地址 : https://github.com/flamedancer/cserver git checkout step2 解析http request 观察 ...