JAVA学习day06
1、3种引用类型
1、数组 2、类 3、接口
2、定义类:
使用类的形式,对现实中的事物进行描述 事物:方法,属性 方法:这个事物具备的功能 属性:变量 格式: Public class 类名{ 属性定义 修饰符 数据类型 变量名 =值 方法定义 修饰符 返回值类型 方法名(参数列表){ } } 3、创建引用类型的变量的格式 数据类型 变量名 =new 数据类型(); 4、实现引用类型的步骤 1、导入包;如果类都是在同一个文件夹,不需要导入包; 2、创建引用类型的变量 3、变量.类型中的功能(也可以调用类中的属性,属性就是变量,赋值和获取值) 测试手机类: /* 定义类: 使用类的形式,对现实中的事物进行描述 事物: 方法,属性 方法: 这个事物具备的功能 属性: 变量 格式: public class 类名{ 属性定义 修饰符 数据类型 变量名 = 值 方法定义 修饰符 返回值类型 方法名(参数列表){ } } 要求: 使用Java中的类,描述生活中的手机这个事物 手机事物,具备哪些属性, 属于他自己的特性 颜色,品牌, 大小 */ public class Phone{ /* 定义手机的属性 */ String color ; String brand ; double size ; } 测试手机类: /* 测试,刚定义好的Phone类 创建引用类型变量的格式 数据类型 变量名 = new 数据类型(); 实现引用类型的步骤 1: 导入包 , 类都是在同一个文件夹,不需要导入包 2: 创建引用类型的变量 3: 变量.类型中的功能 */ public class TestPhone{ public static void main(String[] args){ // 2: 创建引用类型的变量 Phone p = new Phone(); //System.out.println(p); //输出内存的地址 //3: 变量.类型中的功能 //变量 p.的方式,调用类中的属性 //属性就是变量 , 赋值和获取值 p.color = "土豪金"; p.brand = "爱立信"; p.size = 5.0; //获取属性值 System.out.println(p.color+" "+p.brand+" "+p.size); } } 4、程序运行流程 1、方法先进方法区,数据共享区 2、运行时,进入栈 3、引用相关进入堆 5、两个引用类型变量内存图 6、类的练习 电饭锅,包含属性(品牌、容量大小、颜色等) 定义类,描述事物,电饭锅 属性:品牌,大小,颜色 定义类,类名字,电饭锅 类的范围,定义三个属性 7、ArrayList——ArrayList集合的使用 也是引用数据类型 步骤: 1. 导入包 java.util包中 2. 创建引用类型的变量 数据类型< 集合存储的数据类型> 变量名 = new 数据类型 <集合存储的数据类型> (); 集合存储的数据类型: 要将数据存储到集合的容器中 创建集合引用变量的时候,必须要指定好,存储的类型是什么 ArrayList<String> array = new ArrayList<String>(); 3. 变量名.方法 注意: 集合存储的数据,8个基本类型对应8个引用类型 存储引用类型,不存储基本类型 8、ArrayList的常见方法 add(参数) 向集合中添加元素,数据存储进去 方法中的参数类型,定义集合对象时候的类型是一致 ArrayList<Integer> array = new ArrayList<Integer>(); array.add(3); get(int index) 取出集合中的元素,get方法的参数,写入索引 size() 返回集合的长度, 集合存储元素的个数 补充方法: Add(int 索引,存储的元素) 将元素添加到指定的索引上 如:array.add(2,7);//在2索引的位置添加7 set(int 索引,修改后的元素) 将指定的索引上的元素进行修改 Remove(int 索引) 删除指定索引上的元素 Clear() 清空集合中的所有元素 9、ArrayList集合的遍历 /* 集合的遍历 实现思想也是索引思想 集合的索引从0开始,到 size()-1 方法get(int index) */ import java.util.ArrayList; public class ArrayListDemo_2{ public static void main(String[] args){ ArrayList<Integer> array = new ArrayList<Integer>(); array.add(121); array.add(125); array.add(123); array.add(120); array.add(128); //对集合进行遍历 //使用方法 size+get组合进行遍历 for(int i = 0 ; i < array.size(); i++){ System.out.println( array.get(i) ); } } }
10、ArrayList存储的是类型,如商品类型
/*
定义,.描述商品的类
商品 4个属性
商品名字 大小 价格 库存 String double double int 定义类,类名Goods 这个类型的变量,存储到集合中
*/
public class Goods{
//定义商品名字 String brand ; //大小属性 double size ; // 价格属性 double price ; //库存属性 int count ;
}
/*
实现库存管理案例: 1. 存储商品信息 存储商品类型变量 将商品类型的变量,存储到集合中 2. 查看库存清单 将集合进行遍历, 获取出集合中存储的Goods类型变量 输出每一个Goods类型的属性 计算求和: 总库存,总金额 3. 修改商品的库存 集合遍历 ,获取出集合中存储的Goods类型变量 变量调用Goods类的属性count,值进行修改 (键盘输入)
*/
//import java.util.ArrayList;
import java.util.*;
public class Shopp{
public static void main(String[] args){ //创建ArrayList集合,存储Goods类型 ArrayList<Goods> array = new ArrayList<Goods>(); //调用添加商品信息的方法 addGoods(array); //进入死循环中 while(true){ //调用选择功能的方法,获取到用户输入的功能序号 int number = chooseFunction(); //对序号判断,如果=1 进入查看库存功能 = 2 进入修改库存功能 =3 结束 switch(number){ case 1: //进入查看库存,调用查看库存的方法,传递存储商品信息的集合 printStore(array); break; case 2: //进入修改库存功能,调用修改库存的方法,传递集合 update(array); break; case 3: return ; default: System.out.println("无此功能"); break; } } } /* 方法定义,修改库存 键盘的输入,将Goods中的属性值,修改 */ public static void update(ArrayList<Goods> array){ Scanner sc = new Scanner(System.in); //遍历集合,获取集合中的每个元素 for(int i = 0 ; i < array.size(); i++){ //集合方法get获取的是集合的元素,元素类型Goods Goods g = array.get(i); System.out.println("请输入"+g.brand+"的库存数"); //Goods属性,count进行修改 g.count = sc.nextInt(); } } /* 定义方法,实现选择菜单,用户根据功能选择菜单 */ public static int chooseFunction(){ System.out.println("-------------库存管理------------"); System.out.println("1.查看库存清单"); System.out.println("2.修改商品库存数量"); System.out.println("3.退出"); System.out.println("请输入要执行的操作序号:"); Scanner sc = new Scanner(System.in); int number = sc.nextInt(); return number; } /* 定义方法,查看库存清单,遍历集合 */ public static void printStore(ArrayList<Goods> array){ //输出表头 System.out.println("----------商场库存清单----------"); System.out.println("品牌型号 尺寸 价格 库存数"); //定义变量,保存总库存数,和总金额 int totalCount = 0 ; double totalMoney = 0; //遍历集合 for(int i = 0 ; i < array.size(); i++){ //get(索引)获取出集合中的元素,存储的是Goods类,获取的也是Goods类型 //使用Goods类型变量,接受get方法结果 Goods g = array.get(i); System.out.println(g.brand+" "+g.size+" "+g.price+" "+g.count); totalCount = totalCount+g.count; totalMoney = totalMoney + g.count*g.price; } System.out.println("总库存数: "+totalCount); System.out.println("商品库存总金额: "+totalMoney); } /* 定义方法,将商品的信息存储到集合中 集合是所有方法的共享数据,参数传递 */ public static void addGoods (ArrayList<Goods> array){ //创建商品类型变量 Goods类型的变量 Goods g1 = new Goods(); Goods g2 = new Goods(); g1.brand = "MacBook"; g1.size = 13.3; g1.price = 9999.99; g1.count = 3; g2.brand = "Thinkpad"; g2.size = 15.6; g2.price = 7999.99; g2.count = 1; //Goods类型的变量,存储到集合中 array.add(g1); array.add(g2); }
}
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
cheerp 使用事件的例子
这个文章主要描述在cheerp环境下, c++代码如何通过js包装使用dom事件 1 what?事件 事件作为js异步编程的核心,很好的把逻辑分散开来,形成各个处理的handler。 首先事件的目标和当前目标都是实现了派发接口的,可以响应事件并且可以添加事件监听处理的交互对象。事件流拥有冒泡机制, 即从顶级元素流经目标元素并最终回到顶级元素,即所有的子元素都会作为事件流中的目标(target)来响应事件。 对于事件的应用,我想会有大量的文档在网络上,本文就不占篇幅了。如果我们要使用cheerp平台做事件的派发和回调需要说明的内容就在这里了。 2事件的例子 在cheerp中注册一个最顶级的交互元素, 这个元素是window我们拥有window了以后可以拥有js端的玩法在c++端。 A. 首先我们先在js端实现一下浏览器端的事件定义,公开这些接口给cheerp。cheerp定义: Window * window_get_Window(); CustomEvent * window_getCustomEvent (const String & name); CustomEvent *...
- 下一篇
python 网站 使用表单和模板
如果像前面那么做网站,也太丑陋了。并且功能也不多。 在实际做网站中,现在都要使用一个模板,并且在用户直接看到的页面,用html语言来写页面。 在做网站的行业里面,常常将HTML+CSS+JS组成的网页,称作“前端”。它主要负责展示,或者让用户填写一些表格,通过JS提交给用python写的程序,让python程序来处理数据,那些处理数据的python程序称之为“后端”。我常常提醒做“后端”的,不要轻视“前端”。如果立志成为全栈工程师,就要从前到后都通。 关于本讲,主要是要演示一个用模板(HTML)写一个表单,然后提交给后端的python程序,再转到另外一个显示的前端页面显示。为了简化流程,这个过程中没有数据处理和CSS+Javascript的工作,所有界面会丑陋。 一个表单 要做一个前端的页面,显示的内容就如同下图样式 相应代码是,并命名为index.html,存在一个名称是template的目录中。 <!DOCTYPE html> <html> <head> <title>sign in your name</title> &...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7设置SWAP分区,小内存服务器的救世主