Java语言学习day11--7月10日
今日内容介绍
1、自定义类型的定义及使用
2、自定义类的内存图
3、ArrayList集合的基本功能
4、随机点名器案例及库存案例代码优化
###01引用数据类型_类
	* A: 数据类型
		* a: java中的数据类型分为:基本类型和引用类型
	* B: 引用类型的分类
		* a: Java为我们提供好的类,比如说:Scanner,Random等。
		* b: 我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用。 
		
	
###02自定义类的概述
	* A: 自定义类的概述
		* java代码映射成现实事物的过程就是定义类的过程。
		* 举例:
			我们就拿一部手机进行分析,它能用来做什么呢?它可以打电话,上网,聊微信等,这些就是手机所提供的功能,也就是方法;手机也有它的特征,如颜色、尺寸大小、品牌型号等,这些就是手机的特征,也就是属性
		* 目前,我们只关注类中的属性,类中的方法在面向对象部分再进行学习。
				
			
###03自定义类的格式
	* A: 自定义类的格式
		* a: 使用类的形式,对现实中的事物进行描述。
		* b: 事物由方法和属性两部分组成。
			* 方法: 这个事物具备的功能。
			* 属性: 这个事物具备的特征。
		* c: 格式
			public class 类名{
				属性定义
				  修饰符 数据类型 变量名 = 值
				
				方法定义
				  修饰符 返回值类型  方法名(参数列表){
					  
				  }
			}
###04自定义的手机类
	* A: 自定义的手机类
		* a: 案例代码
			public class Phone{
				/*
				    定义手机的属性
				*/
				String color ;
				String brand ;
				double size ; 
			}
###05测试手机类
	* A: 调用方法执行流程
		* a: 实现引用类型的步骤
			* 1: 导入包 , 类都是在同一个文件夹,不需要导入包
			* 2: 创建引用类型的变量
			* 3: 变量.类型中的功能
		* b: 案例代码
			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);
				}
			}
###06自定义类的内存图_1
	* A: 自定义类的内存图_1
		* a: 参见\day06\day06(面向对象\day06_source\对象内存图.JPG
###07自定义类的内存图_2
	* A: 自定义类的内存图_1
		* a: 参见\day06\day06(面向对象\day06_source\对象内存图.JPG
###08两个引用类型变量内存图
	* A: 自定义类的内存图_1
		* a: 参见\day06\day06(面向对象\day06_source\两个引用变量内存图.JPG
###09自定义类的练习
	* A: 实体类的代码
		/*
		    电饭锅,包含属性(品牌、容量大小、颜色等)
			定义类,描述事物,电饭锅
			  属性: 品牌,大小 ,颜色
			
			定义类,类名字,电饭锅
			类的范围,定义三个属性
		*/
		public class DianFanGuo{
			//定义三个属性
			String brand ;
		    double size ;
			String color ;
		}
		
		/*
		   汽车,包含属性(品牌、排量、类型等)
		   定义类,类名 Car
		     属性 品牌 排量 类型
		 */
		public class Car{
			//定义汽车三个属性
			String brand ;
			double paiLiang ;
			String type;
		}
		
		 /*
		   学生,包含属性(姓名,年龄,性别等)
		   定义类,类名Student
		     三个属性: 姓名,年龄,性别 (char)
		*/
		public class Student{
			String name;
			int age ;
			char sex ;
		}
* B: 测试类的代码
		/*
		   定义的测试类
		   同时测试,电饭锅,汽车,学生
		*/
		public class Test{
			public static void main(String[] args){
				//创建电饭锅引用类型
				DianFanGuo dfg = new DianFanGuo();
				
				dfg.brand = "特斯拉";
				dfg.color = "红色";
				dfg.size = 30;
				
				System.out.println(dfg.brand+"  "+dfg.color+"  "+dfg.size);
				
				//创建汽车引用类型
				Car c = new Car();
				c.brand = "巨力";
				c.type = "拖拉机";
				c.paiLiang = 0.5;
				
				System.out.println(c.brand+"  "+c.type+"  "+c.paiLiang);
				
				//创建学生引用类型
				Student stu = new Student();
				stu.name = "张三";
				stu.age = 20;
				stu.sex = '男';
				System.out.println(stu.name+"  "+stu.age+"  "+stu.sex);
				
			}
		}
###10ArrayList创建变量的步骤
	* A: ArrayList创建变量的步骤
		* a: 导入包 java.util包中
		* b: 创建引用类型的变量
			数据类型< 集合存储的数据类型>  变量名 = new 数据类型<集合存储的数据类型>();
	   		集合存储的数据类型: 要将数据存储到集合的容器中
	   		创建集合引用变量的时候,必须要指定好,存储的类型是什么
		* c: 变量名.方法 
	    	注意: 集合存储的数据,8个基本类型对应8个引用类型
	 		存储引用类型,不存储基本类型
		
###11ArrayList创建变量举例
	* A: ArrayList创建变量的示例代码
		import java.util.ArrayList;
		public class ArrayListDemo{
			public static void main(String[] args){
				//创建集合容器,指定存储的数据类型
				//存储字符串
				ArrayList<String> array = new ArrayList<String>();
				
				//创建集合容器,存储整数
				ArrayList<Integer> array2 = new ArrayList<Integer>();
				
				//创建集合容器,存储手机类型
				ArrayList<Phone> array3 = new ArrayList<Phone>();
			}
		}
###12ArrayList的常见方法
	* A: ArrayList的常见方法
		* a: add(参数) 向集合中添加元素
		* b: get(int index) 取出集合中的元素,get方法的参数,写入索引
		* c: size() 返回集合的长度, 集合存储元素的个数
	* B: 案例代码
		import java.util.ArrayList;
		public class ArrayListDemo_1{
			public static void main(String[] args){
				//定义集合,存储字符串元素
				ArrayList<String> array = new ArrayList<String>();
				//调用集合方法add存储元素
				array.add("abc");
				array.add("itcast");
			    array.add("love");
				array.add("java");
				//输出集合的长度,调用集合方法size, size方法的返回值类型 int
				int size = array.size();
				System.out.println(size);
				
				//获取出集合中的一个元素,获取1索引的元素
				//集合的方法get, 获取元素后结果数据类型
				String s = array.get(1);
				System.out.println(s);
				
				
				System.out.println(array.get(0));
				System.out.println(array.get(1));
				System.out.println(array.get(2));
				System.out.println(array.get(3));
			}
		}
###13ArrayList集合的遍历
	* A: 案例代码
		/*
		   集合的遍历
		   实现思想也是索引思想
		   集合的索引从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) );
				}
			}
		}
###14ArrayList补充方法
	* A: ArrayList补充方法
		* a: add(int 索引,存储的元素) 	将元素添加到指定的索引上
		* b: set(int 索引,修改后的元素) 	将指定索引的元素,进行修改
		* c: remove(int 索引) 			删除指定索引上的元素
		* d: clear() 					清空集合中的所有元素
	* B: 案例代码
		import java.util.ArrayList;
		public class ArrayListDemo_3{
			public static void main(String[] args){
				
				ArrayList<Integer> array = new ArrayList<Integer>();
				array.add(1);
				array.add(2);
				array.add(3);
				array.add(4);
				
				//在索引2上,添加元素7
				array.add(2,7);
				
				//将0索引上的元素,修改成10
				array.set(0,10);
				
				//将4索引上的元素,删除
				array.remove(4);
				
				array.clear();
				
				//使用方法 size+get组合进行遍历
				for(int i = 0 ; i < array.size(); i++){
					System.out.println( array.get(i) );
				}
			}
		}
###15随机点名器案例分析
	* A: 随机点名器案例分析
		全班同学中随机的找出一名同学,打印这名同学的个人信息。
		我们对本案例进行分析,得出如下分析结果:
			1.存储全班同学信息(姓名、年龄)
				将容器换成集合,集合中存的是Student类型
			2.打印全班同学每一个人的信息(姓名、年龄)
				 遍历集合
			3.在班级总人数范围内,随机产生一个随机数,查找该随机数所对应的同学信息(姓名、年龄)
			随机点名器明确地分为了三个功能。如果将多个独立功能的代码写到一起,则代码相对冗长,我们可以针对不同的功能可以将其封装到一个方法中,将完整独立的功能分离出来。
			而在存储同学姓名时,如果对每一个同学都定义一个变量进行姓名存储,则会出现过多孤立的变量,很难一次性将全部数据持有。此时,我们采用ArrayList集合来解决多个学生信息的存储问题
Java语言学习day11--7月10日的更多相关文章
- python学习 day11 (3月16日)----(生成器内置函数)
		1生成器 1生成器的本质 一定是迭代器(反之不一定(用send(生成器特有方法)验证))2生成器是可以让程序员自己定义的一个迭代器3生成器的好处,节省内存空间4生成器的特性,一次性的,惰性机制,从上往 ... 
- Java语言学习day01--6月28日
		Java语言学习day01一:Java概述 1.Java语言发展史 任职于太阳微系统的 詹姆斯·高斯林 等人于1990年代初开发Java语言的雏形,最初被命名为 Oak ,目标设置在 家用电器等小型系 ... 
- Java语言学习day02--6月29日
		Java语言学习day02###01常用的DOS命令 * A: 常用的DOS命令 * a: 打开Dos控制台 * win+r--cmd--回车 * b: 常用dos命令 * cd.. : 退回到上一级 ... 
- 2014年7月10日,我人生的最重要Upgrade
		2014年7月10日上午,我的小公主顺利的出生于国妇婴.之前各种紧张,各种不安.在不安中的前天晚上陪着来上海的董博士于方先生在人民广场聚餐.大家都是工作几年的,各种感慨,对于工作中的零零种种.还有对未 ... 
- 【2017年9月10日更新】ABP配套代码生成器(ABP Code Generator)帮助文档,实现快速开发
		ABP代码生成器介绍 ABP Code Generator 针对abp这个框架做了一个代码生成器,功能强大.分为两大功能点,一个是数据层,一个是视图层. 数据服务层:通过它,可以实现表设计.领域层初始 ... 
- [网站公告]3月10日23:00-4:00阿里云SLB升级,会有4-8次连接闪断
		大家好,阿里云将于3月10日23:00-4:00对负载均衡服务(SLB)做升级操作,升级期间SLB网络连接会有约4-8次闪断.由此给您带来麻烦,敬请谅解! 阿里云SLB升级公告内容如下: 尊敬的用户: ... 
- 2016年12月10日 星期六 --出埃及记 Exodus 21:5
		2016年12月10日 星期六 --出埃及记 Exodus 21:5 "But if the servant declares, `I love my master and my wife ... 
- 2016年11月10日 星期四 --出埃及记 Exodus 20:1
		2016年11月10日 星期四 --出埃及记 Exodus 20:1 And God spoke all these words: 神吩咐这一切的话说, 
- Java Calendar获取年、月、日、时间
		Java Calendar获取年.月.日.时间 Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00" ... 
- 成都Uber优步司机奖励政策(4月10日)
		滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ... 
随机推荐
- python获取本地时间,时间戳与日期格式相互转换
			附上代码与运行结果截图: import time # 获取当前时间 now = time.localtime() # 格式化日期 now_ = time.strftime('%Y-%m-%d %H:% ... 
- Java study 4
			JAVA 学习第四天 今日学习内容 快捷键.复习.注释.字面量 快捷键 学习地址:IJ快捷键 复习 jdk下载.安装.部署环境.第一个Java程序入门学习,环境变量path 注释 注释:顾名思义就是用 ... 
- uoj310. 【UNR #2】黎明前的巧克力
			题目描述: uoj 题解: WTF. 看题解看了一个小时才看明白. 首先有状态$f[i][j]$表示前$i$个东西两人取,最后两人异或和为$j$的有多少方案. 转移为$f[i][j]=f[i-1][j ... 
- Oracle数据库 如何根据某个字段名的值去查询存在的表列表
			declare v_sql varchar2(1000); data_count number; begin -- OWNER是模式名 tablespace_name是表空间 for cur_tabl ... 
- 为什么需要消息系统,mysql 不能满足需求吗?
			1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据 丢失风险.许多消息队列所采用的& ... 
- Java 中的 final 关键字有哪些用法?
			修饰类:表示该类不能被继承: 修饰方法:表示方法不能被重写: 修饰变量:表示变量只能一次赋值以后值不能被修改(常量). 
- springmvc组件组成以及springmvc的执行过程
			springmvc三大组件 处理器映射器:用户请求路径到Controller方法的映射 处理器适配器:根据handler(controlelr类)的开发方式(注解开发/其他开发) 方式的不同区寻找不同 ... 
- spring-boot--lernning之自定义starters
			思路: 1这个场景需要使用到的依赖是什么??? 2如何编写自动配置 @Configuration 指定这个类是一个配置类 @ConditionalOnXXXX 指定条件下成立的情况下自动配置类生效 @ ... 
- 如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时  间最长?
			使用 jstack 找出消耗 CPU 最多的线程代码 
- expression:_CrtlsValidHeapPointer
			详见stackoverflow "_CrtIsValidHeapPointerUserData means, that you have a heap corruption, which i ... 
