UM2L14——集合类
UM2L14——集合类
Java中各集合类之间的关系
Java中的集合类就类似C#中的List和Dictionary的存在
主要用于批量存储对象,并且可以动态添加,动态删除
Java的集合类继承关系如下:
Collection(接口):
Set(接口)
HashSet
TreeSet
List(接口)
ArrayList
LinkedList
Map(接口):
HashMap
TreeMap
Collection接口中的方法
add(E e) 添加元素
remove(Object o) 移除元素
clear() 清空元素
isEmpty() 是否为空
iterator() 获取迭代器,可以用于遍历
size() 集合中元素个数
contains() 判断元素是否存在
toArray() 将容器中元素转为数组
List接口中的方法
由于Java不存在索引器,因此,需要使用 get 和 set 来通过索引获取和修改元素
get(int index) 获取指定位置元素
set( ...
UM2L13——Java泛型
UM2L13——Java泛型
Java泛型
Java中泛型使用的基本规则和C#中一致 (泛型在java底层的实现和C#完全不同) ,泛型可以代表一切类型,主要使用上就是泛型类和泛型方法,主要区别如下:
泛型方法写法和使用不同
泛型约束不同
泛型类型通配符 ?
一些基础类型必须写他们的包装类名,不能写变量类型(例如int就需要写Integer)
泛型基本用法
泛型类的声明和使用如下:
1234567public class TestT<T> { public T testValue; public T testFun(T t) { return t; }}
1234567public class Lesson16 { public static void main(String[] args) { TestT<Float> obj = new TestT<>(); obj.testValue = 11f; ...
UM2L12——StringBuilder
UM2L12——StringBuilder
本章代码关键字
1234stringBuilder.append() //添加字符串stringBuilder.insert() //在指定索引处插入字符串stringBuilder.delete() //删除指定范围内的字符串stringBuilder.toString() //将stringBuilder转换为字符串
StringBuilder
Java中的StringBuilder和C#基本一致,主要是用于处理会频繁修改的字符串的
如果你的字符串变量会频繁被修改,建议使用StringBuilder可以帮助我们节约性能
StringBuilder节约性能的体现
下面的代码会分别输出String字符串拼接10000次和StringBuilder字符串拼接10000次所消耗的时间(单位:毫秒):
12345678910111213String str = new String("");long startTime = System.currentTimeMillis( ...
UM2L11——String
UM2L11——String
本章代码关键字
123456789101112131415string.equals() //对比字符串的值是否相同string.equalsIgnoreCase() //对比字符串的忽略大小写的值是否相同string.length() //获取字符串长度string.indexOf() //正向查找字符串中的某个字符或字符串,返回其索引,不存在返回-1string.lastIndexOf() //反向查找字符串中的某个字符或字符串,返回其索引,不存在返回-1string.charAt() //通过索引获取某个字符串string.substring() //截取子字符串,左包含又不包含string.trim() //删除字符串左右两边的空格string.replace() //字符串 ...
UM4——Android SDK 接入(以百度定位SDK为例)
UM4——Android SDK 接入(以百度定位SDK为例)
SDK
SDK是Software Development Kit(软件开发包)的简写
一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合
说人话:
SDK就是程序员针对某些操作系统(比如Windows、Android、IOS)写好的代码,这些代码用于完成某些功能逻辑
操作系统的不同,那么对应的开发语言也就不同,比如Android平台可能是基于Java写的,IOS平台可能是基于Objective-C写的等等
本系列学习内容(以接入百度定位SDK为例)
交互项目创建
接入所有第三方SDK的套路
获取SDK完成准备工作
配置修改、权限修改
Unity调用对应API
打包测试
为什么要接入SDK?
很多游戏或软件的第三方功能都是第三方平台提供的
我们想要在产品中使用这些功能,就需要接入这些第三方的SDK
比如游戏内的 支付宝支付功能、微信支付功能、各平台登录功能、数据统计功能等等
举例:
我们制作的游戏找到了代理商 为腾讯,腾讯要求能够支持QQ号登录、微信登录
这时我们就需要接入 ...
UM3——Unity 和 Android 交互
UM3——Unity 和 Android 交互
Unity 和 Android 交互
Unity和Android之间的交互主要指,在发布安卓项目时,我们可以
在Unity相关代码中调用Android相关内容
在Android相关代码中调用Unity相关内容
要达到这样的目的,我们需要建立Android项目,将Android项目以jar包或aar包的形式导入Unity后进行交互,再一起打包
其中,jar和aar包都是归档文件
jar包:
jar包 包含Android项目中的脚本文件和清单文件,不包含资源文件,jar包导入其他工程后,其他工程可以方便引用源码
aar包:
aar包是Android Studio下打包Android工程中的src(脚本文件)、res(资源文件)、lib(库文件)后生成的打包文件,
aar包导入其他工程后,其他工程可以方便引用源码和资源文件
注意:用Android Studio打包时一般以aar包形式,用Eclipse打包时一般以jar包形式
简单记忆:jar和aar有点类似C#中的dll文件,只是规则和结构不同,我们可以将这些包放到其他工程中使 ...
UM2L10——内部类
UM2L10——内部类
内部类
Java中的内部类和C#中区别较大,在使用时一定要注意他们的区别之处
Java中的内部类在外部使用时必须伴随包裹它的外部类的出现而出现
外部类中的所有内容(包括私有)都可以直接在内部类中使用
内部类和外部类中的同名成员,通过this 和 外部类.this来区分
匿名类使用较少,主要做了解,能看懂即可
Java中的内部类的使用
注意:Java中的内部类的使用和C#有很大的不同
Java中的内部类在外部使用时必须伴随包裹它的外部类的出现而出现,声明语法为:
12外部类 outer = new 外部类();外部类.内部类 inner = outer.new 内部类();
也就是说,在外部使用非静态的内部类,必须要先实例化一个外部类对象,再通过这个外部类对象实例化内部类,实际例子:
12Outer outer = new Outer();Outer.Inner inner = outer.new Inner();
外部类中的所有内容(包括私有)都可以直接在内部类中使用
因为内部类是基于外部类实例化的,因此是可以使用外部类对象的成员
1234 ...
UM2L9——包
UM2L9——包
本章代码关键字
123package //指明类属于哪个包import //导入包import static //静态导入包
Java的包
Java中的包(package)类似C#中的命名空间,主要用于解决类名冲突
同名类做不同逻辑时,可以将两个类放到两个不同的包中
Java中的包概念和使用类似C#中的命名空间
但是相对C#中的命名空间来说,Java中需要自己先创建包
在文件的开头使用package语句指定放到哪个包下,即可将该类放到包内
但是要注意,该语句后的包名需要和java文件所在的文件夹路径对应上,否则报错
1234package com.taikr.java.test;public class test2 {}
在资源管理器内可以看到,所谓的包其实就是文件夹,包名中用点分割的字段就代表一个文件夹
如图就是com.taikr.java.test的文件路径
包名规则
多人完成,版权属于发起者:indi.发起这名.项目名.模块名....
独立完成,公开,版权属于个人:per ...
UM2L8——面向对象
UM2L8——面向对象
本章代码关键字
123456789class //类的声明关键字finalize() { } //在对象成为垃圾后,开始GC时,如果对象存在finalize()方法,会先执行一次该方法,下次GC才会回收该方法extends //类的继承关键字instanceof //判断某个对象是否是某个类型,类似于C#的is关键字final //此关键字修饰的类不能再被继承,修饰的方法不能再被重写,修饰的变量不能修改(等同于常量)super //调用父类的方法的关键字abstract //抽象类和抽象方法关键字interface //接口声明关键字implements //类继承接口关键字
面向对象
面向对象回顾
概念:万物皆对象
用程序来抽象(形容)对象,用面向对象的思想来编程
面向对象三大特性是封装、继承、多态
注意:
面向对象是一种 ...
UM2L7——函数
UM2L7——函数
函数
Java中函数的使用和C#基本一致,区别主要是:
Java中没有ref和out关键字
Java中可变参数写法有些许不同,用…表示可变参数
Java中函数参数没有默认参数的用法,即不能为参数添加默认值
Java中函数的命名方式 用的是驼峰命名法
Java中的函数和C#对比
Java中函数和C中函数的使用基本一致函数的声明、重载、使用等就按照C中的基础规则使用即可
主要区别如下:
Java中没有ref和out关键字
Java中可变参数写法有些许不同
Java中函数参数没有默认参数用法,即不能为参数添加默认值
复习函数基本概念
函数(方法)本质是一块具有名称的代码块,可以使用函数(方法)的名称来执行该代码块
函数(方法)是封装代码进行重复使用的一种机制
函数(方法)的主要作用
封装代码
提升代码复用率(少写点代码)
抽象行为
Java的函数写在哪里
class语句块中,Java中没有结构体,所以不存在结构体语句块
Java函数基本语法
12345678910 1 2 3 4修饰符 返回类型 ...