06_java之类概述
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
07自定义类的内存图_2
- * A: 自定义类的内存图_1
08两个引用类型变量内存图
- * A: 自定义类的内存图_1
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集合来解决多个学生信息的存储问题
16随机点名器代码实现
- * A: 随机点名器案例代码
- /*
- 随机点名器,集合改进 (学生的姓名和年龄)
- 现实中有学生这个事物,使用定义类的形式,描述学生事物
- 属性: 姓名,年龄
- 姓名存储了数组, 将容器换成是集合
- String[] s = {"",""};
- 集合中,存储的是学生的姓名吗? 应该存储Student类型
- 存储学生:
- 学生类型,存储到集合中
- 总览: 遍历集合
- 随机: 随机数,作为索引,到集合中找到元素
- 三个功能,共享的数据,集合容器,
- 定义三个方法,必须参数传递集合
- */
- import java.util.ArrayList;
- import java.util.Random;
- public class CallName{
- public static void main(String[] args){
- //定义集合,存储的是StudentName类型变量
- ArrayList <StudentName> array = new ArrayList<StudentName>();
- //调用添加方法
- add (array);
- //调用遍历集合
- printArrayList(array);
- randomStudentName(array);
- }
- /*
- 随机数,当作集合的索引,到集合中找到元素
- */
- public static void randomStudentName(ArrayList<StudentName> array ){
- Random r = new Random();
- int number = r.nextInt( array.size());
- //随机数,索引,到集合中get
- StudentName s = array.get(number);
- System.out.println( s.name +" "+s.age);
- }
- /*
- 总览学生的信息,遍历集合
- */
- public static void printArrayList(ArrayList<StudentName> array){
- for(int i = 0 ; i < array.size();i++){
- //存储集合的时候, 集合.add(sn1) sn1 是StudentName类型变量
- //获取的时候,集合.get方法,获取出来的是什么, 还是StudentName类型变量
- StudentName s = array.get(i);
- System.out.println(s.name+" "+s.age);
- }
- }
- /*
- 定义方法,实现存储学生的姓名和年龄
- 创建StudentName类型变量,存储到集合中
- */
- public static void add (ArrayList<StudentName> array){
- //创建StudentName类型变量
- StudentName sn1 = new StudentName();
- StudentName sn2 = new StudentName();
- StudentName sn3 = new StudentName();
- StudentName sn4 = new StudentName();
- StudentName sn5 = new StudentName();
- sn1.name = "张三1";
- sn1.age = 201;
- sn2.name = "张三2";
- sn2.age = 202;
- sn3.name = "张三3";
- sn3.age = 203;
- sn4.name = "张三4";
- sn4.age = 204;
- sn5.name = "张三5";
- sn5.age = 205;
- //将StudentName变量,存储到集合中
- array.add(sn1);
- array.add(sn2);
- array.add(sn3);
- array.add(sn4);
- array.add(sn5);
- }
- }
17库存案例分析加入集合
- * A: 库存案例分析加入集合
18库存案例添加商品信息
- * A: 案例代码
- /*
- 定义,.描述商品的类
- 商品 4个属性
- 商品名字 大小 价格 库存
- String double double int
- 定义类,类名Goods
- 这个类型的变量,存储到集合中
- */
- public class Goods{
- //定义商品名字
- String brand ;
- //大小属性
- double size ;
- // 价格属性
- double price ;
- //库存属性
- int count ;
- }
-
- /*
- 实现库存管理案例:
- 1.存储商品信息
- 存储商品类型变量
- 将商品类型的变量,存储到集合中
- */
- //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);
- }
- /*
- 定义方法,将商品的信息存储到集合中
- 集合是所有方法的共享数据,参数传递
- */
- 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);
- }
- }
19库存案例查看库存清单
- * A: 案例代码
- /*
- 实现库存管理案例:
- 1.存储商品信息
- 存储商品类型变量
- 将商品类型的变量,存储到集合中
- 2.查看库存清单
- 将集合进行遍历, 获取出集合中存储的Goods类型变量
- 输出每一个Goods类型的属性
- 计算求和: 总库存,总金额
- */
- //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);
- }
- /*
- 定义方法,查看库存清单,遍历集合
- */
- 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);
- }
- }
20库存案例修改库存清单及测试代码的实现
- * A: 案例代码
- /*
- 实现库存管理案例:
- 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);
- }
- }
06_java之类概述的更多相关文章
- 4th 循环结构概述和for语句的格式及其使用
04.01_Java语言基础(循环结构概述和for语句的格式及其使用) A:循环结构的分类 for,while,do...while B:循环结构for语句的格式: for(初始化表达式;条件表达式; ...
- 04 循环结构概述和for语句的格式及其使用
04.01_Java语言基础(循环结构概述和for语句的格式及其使用) A:循环结构的分类 for,while,do…while B:循环结构for语句的格式: for(初始化表达式;条件表达式;循环 ...
- 【AR实验室】ARToolKit之概述篇
0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- .Net 大型分布式基础服务架构横向演变概述
一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- Java消息队列--JMS概述
1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...
随机推荐
- BMI计算器
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- 01-名字管理系统.py
#-*- coding:utf-8 -*- #1.打印功能提示 print("-"*50) print("名字管理系统 V8.6") print("1 ...
- iOS 网络编程(HTTP协议)
HTTP协议的概念HTTP协议,Hyper Text Transfer Protocol (超文本传输协议)是用于从万维网服务器传送超文本到本地浏览器的传输协议,HTTP是一个应用层协议,由请求和响应 ...
- 从小白开始学习iOS开发
从事iOS开发不经意间,已经两年过去了,记得当初看到OC是,我根本就不知道那些个东西是什么?从开始学习开机,到一个个英文开始,为了能找到工作,愣是耐下心去坚持看下去. 现在回想起来,很是庆幸我没有放弃 ...
- 使用PullToRefreshListView时遇到Item点击事件失效问题 解决方法
最近在自己的项目中使用到了以下开源项目: https://github.com/nanchen2251/pullToRefreshDemo 相关介绍博客如下: http://www.cnblogs.c ...
- Git详解之七 自定义Git
以下内容转载自:http://www.open-open.com/lib/view/open1328070404827.html自定义 Git 到目前为止,我阐述了 Git 基本的运作机制和使用方式, ...
- Android中的关于MDM中的几个方法举例
Android中的关于MDM中的几个方法举例 首先介绍一下MDM是什么的缩写,MDM是什么? MDM 是 (Mobile Device Management )的缩写,中文翻译过来就是移动设备管理.随 ...
- wampserver2.5的php.ini位置在wamp\bin\apache\apache2.4.9\bin
wampserver2.5的php.ini位置在wamp\bin\apache\apache2.4.9\bin php.ini有多个地方,C:\wamp\bin\php\php5.5.12下面有php ...
- BZOJ5196: [Usaco2018 Feb]Taming the Herd(DP暴力)
5196: [Usaco2018 Feb]Taming the Herd Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 78 Solved: 71[ ...
- WebLogic配置JNDI数据源
一.什么是jndi数据源 JNDI是Java命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一. 我们平时开发web程序的时候, ...