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 ...
随机推荐
- Grafana镜像在阿里云镜像站首发上线
阿里云镜像站体验官招募中, 在各大社区平台分享相关内容累计积分就可赢得Airpods耳机和移动硬盘等奖励,银牌体验官的奖励人数不设限哦.立即参与 简介 Grafana是一个跨平台的开源的度量分析和可视 ...
- Zwibbler—前端Canvas绘图工具使用记录
本人第一次发博客,用意在于记录自己在开发过程中用到的实用工具并分享出来,写的可能不好,请大家多多包涵!!! 工具官网:https://www.zwibbler.com 基于Canvas的一个前端绘画工 ...
- elasticsearch 索引数据多了怎么办,如何调优,部署 ?
面试官:想了解大数据量的运维能力. 解答:索引数据的规划,应在前期做好规划,正所谓"设计先行,编码在后", 这样才能有效的避免突如其来的数据激增导致集群处理能力不足引发的线上客户 ...
- springboot 设定访问项目的根路径
springboot的配置文件application.yml: spring.mvc.view.prefix : / spring.mvc.view.suffix : .html server: po ...
- spring-boot-learning 缓存之redis
什么是BSD协议: BSD是"Berkeley Software Distribution"的缩写,意思是"伯克利软件发行版". BSD开源协议是一个给于使用者 ...
- spring-boot-关于配置文件
------------恢复内容开始------------ spring-boot 的配置文件有四个地方: 项目更目录下的config目you录下(自己建) 项目根目录下 resource 目录下的 ...
- '\ddd'转义字符与八进制转换
所有的ASCII码都可以用"\"加数字(一般是8进制数字)来表示.而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等, ...
- html元素contenteditable属性如何定位光标和设置光标
最近在山寨一款网页微信的产品,对于div用contenteditable属性做的编辑框有不少心得,希望可以帮到入坑的同学. 废话不多说了,我们先来理解一下HTML的光标对象是如何工作的,后面我会贴完整 ...
- task0002(四)- 练习:数据处理、轮播及交互
转载自我的个人博客 欢迎大家批评指正 包括5部分: 小练习1-处理用户输入 小练习2-日期对象的使用 小练习3:轮播图 小练习4:输入提示框 小练习5:界面拖拽交互 源码地址task0002 在线De ...
- HTML5离线存储整理
前端html部分 //canvas.html <!DOCTYPE html> <html manifest="/test.appcache"> <he ...