JAVA基础学习之路(四)定义简单java类
简单java类开发一般原则:
- 类名称必须有意义,再怎么说,要让人家看的明白吧
- 类之中所有属性必须使用private封装,并提供setter,getter方法
- 类之中可以有多个构造方法,但是必须保留有一个无参数构造方法
- 类之中不允许出现任何输出语句,所有输出必须交给被调用处
- 类之中需要有一个可以取得对象完整信息的方法,一般叫做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类的更多相关文章
- JAVA基础学习之路(八)[1]String类的基本特点
String类的两种定义方式: 直接赋值 通过构造方法赋值 //直接赋值 public class test2 { public static void main(String args[]) { S ...
- JAVA基础学习之路(一)基本概念及运算符
JAVA基础概念: PATH: path属于操作系统的属性,是系统用来搜寻可执行文件的路径 CALSSPATH: java程序解释类文件时加载文件的路径 注释: 单行注释 // 多行注释 /*... ...
- Java基础学习总结(70)——开发Java项目常用的工具汇总
要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具. 首先我们先了解完整项目开发过程,如图所示: 从上图中我们能看到一 ...
- Java基础_0311: 数据表与简单Java类映射
数据表与简单Java类映射 现在假设有如下的关系表,现在要求实现如下的数据关联操作: 一个部门有多个雇员: 一个雇员有一个或零个领导 代码实现 class Dept { private int dep ...
- Java基础学习总结(68)——有关Java线程方面的面试题
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java 语言一个重要的特点就是内置了对并发的支持,让 Java 大受企业和程序员的欢迎.大多数待遇丰厚的 Java 开发职位都要求开发者 ...
- JAVA基础学习之路(五)数组的定义及使用
什么是数组:就是一堆相同类型的数据放一堆(一组相关变量的集合) 定义语法: 1.声明并开辟数组 数据类型 数组名[] = new 数据类型[长度]: 2.分布完成 声明数组:数据类型 数组名 [] = ...
- JAVA基础学习之路(三)类定义及构造方法
类的定义及使用 一,类的定义 class Book {//定义一个类 int price;//定义一个属性 int num; public static int getMonney(int price ...
- JAVA基础学习之路(七)对象数组的定义及使用
两种定义方式: 1.动态初始化: 定义并开辟数组:类名称 对象数组名[] = new 类名称[长度] 分布按成:类名称 对象数组名[] = null: 对象数组名 = new 类名称[长度]: 2 ...
- JAVA基础学习之路(二)方法定义,重载,递归
一,方法的定义: package test; public class test1 { public static void main(String args[]) { int result = ad ...
随机推荐
- windows自带的netsh 端口转发
netsh interface portproxy show v4tov4 (3)添加“端口映射” netsh interface portproxy add v4tov4 listenaddress ...
- 深入浅出爬虫之道: Python、Golang与GraphQuery的对比
深入浅出爬虫之道: Python.Golang与GraphQuery的对比 本文将分别使用 Python ,Golang 以及 GraphQuery 来解析某网站的 素材详情页面 ,这个页面的特色是具 ...
- Spring知识点小结汇总
Spring部分 1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控 ...
- 破损的键盘(悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),Uva 11988)
破损的键盘(悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),Uva 11988) 题意描述 你在输入文章的时候,键盘上的Home键和End键出了问题,会不定时的按下. ...
- Django学习笔记3-静态文件调用
1.settings.py 静态文件相关示例代码及说明: # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.c ...
- jQuery关于复选框的基本小功能
这里是我初步学习jquery后中巨做的一个关于复选框的小功能: 点击右边选项如果勾上,对应的左边三个小项全部选中,反之全不选, 左边只要有一个没选中,右边大项就取消选中,反之左边全部选中的话,左边大项 ...
- vue调用豆瓣API加载图片403问题
"豆瓣API是有请求次数限制的”,这会引发图片在加载的时候出现403问题,视图表现为“图片加载不出来”,控制台表现为报错403. 其实是豆瓣限制了图片的加载,我自己用了一个办法把图片缓存下来 ...
- 报错: Name node is in safe mode
将本地文件拷贝到hdfs上去,结果上错误:Name node is in safe mode 这是因为在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统 ...
- 成都Uber优步司机奖励政策(2月16日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- c#中insert Geography的字段,包含事务
SqlConnection conn = new SqlConnection(); conn.ConnectionString ="你的sql server数据库连接字符串"; c ...