Android零基础入门
目录
UI基础入门
Android入门
视频:
链接: https://pan.baidu.com/s/1_b0XMAEilNkmj1IdFKauig 提取码: a7kd
笔记:
目录解析及HelloWorld
视频:
链接: https://pan.baidu.com/s/10TxqU2-SDDo6LildYVoW2g 提取码: xxqf
笔记:
Activity入门
视频:
链接: https://pan.baidu.com/s/1LQ2B9-myqN4alVHzkZwj-A 提取码: ks6e
view入门; 视频,
链接: https://pan.baidu.com/s/1KCEXLWEWqM4hfBYZn4f1tQ 提取码:6syy
线性布局入门: 视频;
链接: https://pan.baidu.com/s/1TS4BUxnyJne0W17KHwQSDw 提取码:pypa
ui基础入门; 视频;
链接: 链接:https://pan.baidu.com/s/13yIB7i1lKFN-UoHI7r8Z3w 提取码:546d
笔记:
UI常用组件
1.关键字 java 中有特殊用途的词被称为关键字,区分大小写。
2.标识符
标识符是用于给java程序中的变量、类、方法等命名的符号。
标识符的几条规则:
2.1.由字母、数字、下划线(_)、美元符号($)组成,不能包含特殊字符,不能以数字开头。
2.2.不能是Java关键字和保留字,但可以包含关键字和保留字
2.3.严格区分大小写。
3.变量
声明一个变量的格式为 : 变量类型 变量名 = 变量值;
变量名采用小驼峰式命名规则。
4.数据类型
数据类型分为两类:基本数据类型、引用数据类型。
基本数据类型有:
整数类型:byte、short、int(定义一个整数时,系统默认为为int类型)、long 数值型{ 浮点类型:float、double(定义一个浮点型数据时,系统默认为double) 字符型 :char 布尔型 :boolean (布尔值的数据只能是true或fleas,布尔值主要用于条件判断)、 基本数据类型一般放在栈里,复制时是复制了一个副本给新变量,所以新变量无论如何变,都不影响原变量。
引用数据类型有:
类:class 接口:interface 字符串:string 数组:Array 但凡是一个独立的类皆为引用类型的数据,其内容放在堆里,在栈里的是其的地址值。复制时给的是其地址值,新变量的改变也会影响原变量。 但凡new出来的皆放在堆里,字符串有字符串池,稍微特殊!
5.运算符 加法运算符:+ , 减法运算符:- , 取余运算符:% , 除法运算符:/ , 乘法运算符:* , 自加运算符、自减运算符:++、--。(自身加一、减一) 当自加(减)运算符在变量前面时,先将变量加(减)一,再执行语句,若在变量后面,则先执行语句,再将自身加(减)一;
6.数据类型转换
数据类型转换分为:
6.1自动数据类型转换:由范围小的数据类型向范围大的数据类型转换时,发生自动数据类型转换。如将int类型转化为long类型。
6.2强制数据类型转换:由范围大的数据类型向范围小的数据类型转换时,发生强制数据类型转换。如将long类型转化为int类型。格式为 数据类型(如long) 变量名 = (数据类型)(如(long))数据值。
强制数据类型转换会造成部分数据的丢失和精度损坏。 除却int转double时没有精度的丢失,其它所有整数类型转浮点类型都会有精度丢失。
7.运算过程中数据类型的提升
在运算过程中,数据类型会自动的提升为范围最大的数据类型。如int+long,此时int会提升为long类型变量,输出结果也为long类型。
7.1 如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型。
7.2 否则,如果其中一个操作数是float类型,另一个操作数就会转换为float类型。
7.3 否则,如果其中一个是long类型,另一个操作数就会转换为long类型。
7.4 否则,两个操作数都会转换为int类型。
8.条件用语句 8.1 if语句:
if(判断条件1){ 要执行的代码块;(当条件1为true时执行)
}else if(判断条件2){
要执行的代码块;(当条件1为fleas,判断条件2为true时执行)
}else{
要执行的代码块;(当条件1和条件2都为fleas时执行)
}
并且if语句中可以嵌套if语句,else if 和 else可以不写。
8.2 switch语句:
switch(表达式){ case 常量 1: //代码块1; break; case 常量 2: //代码块2; break; 。。。。。。 default: //代码块n; break;
}
使用switch语句时,要注意在每个要执行的代码后面加break,否则会将满足条件,及满足条件以下的代码全部执行。
8.3 while循坏语句:
while(布尔表达式){ 要循环执行的代码块
} while循环执行时会先判断条件,在执行,当条件不满足时,终止循环。
8.4 do...while循环:
do{ 执行的代码块
}while(布尔表达式)
与while循环不同的是,该循环会先执行一次,再判断条件。
8.5 for循环:
for(判断语句){ 执行语句块};
for一般用于遍历,但千万要小心判断语句的不适当性会使程序一直运行。一般用于有限次数的循环。 for(声明变量 : 要遍历的数据 ) {执行语句块};一般用于遍历一整个数据。
==================================================================
9.数组
9.1 定义:数组和变量差不多,也是可以存放数据的,但是数组可以存多个数据,而且多个数据类型统一。
9.2 格式:
:::: A.数组类型[] 数组名称;
::::: ##B.数组类型 数据名称[];(不推荐)
9.3 变量想要使用必须赋值,而数组要想使用必须【初始化】;
9.4 初始化有两种:动态初始化和静态初始化。
A.动态初始化:指定数组的长度
1)数组类型[] 数组名称 = new 数据类型[数组长度];
B.静态初始化:指定数组的内容
1)数组类型[] 数组名称 = new 数据类型[] {数据1, 数据2, 数据3, 数据4....};
2)数组类型[] 数组名称 = {数据1, 数据2, 数据3, 数据4....};(简化的版本)
9.5 数组不初始化会有默认值:
A.整数类型:0
B.浮点数类型:0.0
C.布尔值类型:false
D.引用类型:null
E.字符类型:\u0000(Unicod写法)
F.直接打印数组的话,而不是数组的某一位,会打印出16进制的地址值(哈希值),16进制的前缀一般是0(这是零)x;
9.6 如何访问数组的一个具体元素:
A.数组名称[索引];索引从0开始到长度减1。
9.7 静态初始化的注意事项;
A.虽然静态初始化没有指定长度,但是仍可以根据具体元素的个数自动推算出来长度。
B.虽然简便格式当中未写new....,但仍有开辟空间的过程。(即其还在堆里)
C.虽然指定了具体元素内容,但是仍然会有默认值被替换的过程。
9.8 获取数组的长度
A.格式:数组名称.length;
B.调用Arrays里的方法来获取数组的长度,返回值是一个int;
9.9 【注意】
A.一个数组一旦在内存当中被创建了,那么数组的长度就不能发生改变。
B.一旦索引越界,会出现报错(编译不会报错,运行会报错):ArrayIndexOutOfBoundsException,只要出现这种异常,一定是访问的数组元素并不存在,索引不能为负数。
9.10 【扩展】:java的内存分配
A.java里的jre里的jvm管理着内存。//
B.栈(Stack):主要存放局部变量。(先进后出,后进先出。可忽略)【重点】
C.堆(Heap):但凡是new出来的都在堆里。【重点】
1)默认值规则看5;
D.方法区(Method Area):存放与class相关的信息。【重点】
E.本地方法区:与操作系统相关。
F.寄存器(pc Register):与cpu相关,性能极高。
=================================================================
10.方法介绍 所谓方法,就是用来解决一类问题的代码得有序组合,是一个功能模块。 语法格式:
访问修饰符 返回类型 方法名(参数列表){ 方法体 }
10.1.方法的分类: 根据方法是否带参数、是否返回值、可分为四类:
- 无参无返回值的方法 - 无参带返回值的方法 - 带参无返回值的方法 - 带参带返回值的方法
11.创建类和对象
public class index { //创建一个方法 public void indexDome() { System.out.println("哈喽我的"); } public static void main(String[] args) { //创建index类的对象domeOne index domeOne = new index(); domeOne.indexDome(); }
}
11.1无参带返回值方法:
piblic class index{ public int area(){ int lenght = 10; int witdh = 5; int getArea = lenght*width; return getArea; } public static void main(String[] args){ index sc = new index(); System.out.println("长方形面积为:"+ sc.area()); } }
11.2带参无返回值的方法:
public class index { public static void max (float a, float b) { float max; if(a>b) { max = a; }else { max = b; } System.out.println("两个数"+a+"和"+b+"的最大值为:"+max); } public static void main(String[] args) { index domeThree = new index(); int a=5,b=3; index.max(a,b); float m=5.6f,n=8.9f; index.max(m,n); index.max(9.8f,12.8f); }
11.3【重载】
1.方法重载,需要参数列表不同 A.参数的个数不同 B.参数的类型不同 C.参数的多类型顺序不同 2.重载和下面的原因无关: A.与返回值的类型无关 B.与参数的名称无关
11.4如何定義一個“标准的类”?
1.所有的成员变量都要使用private私有化; 2.为每一个成员变量编写一对Setter和Getter方法。 3.编写一个无参数的构造方法; 4.编写一个全参数的构造方法;
11.5使用构造方法的注意事项:
1.构造方法根本不写返回值类型,连void都不写; 2.构造方法的名字和所在类的名字必须一样,区分大小写; 3.构造方法也是方法,可以进行重载; 4.构造方法如果没有自定义,那么编译器会赠默认送一个无参数,什么都不做的构造方法,样子如下: * public Studen(){}; * 如果定义了至少一个,那么便不在赠送默认的;
11.6注意事项
当局部变量和成员变量名字一样时,方法当中会根据“就近原则”使用局部变量。 如果希望区分一下,那就需要以下格式: this.成员变量名 this关键字的经典作用,将重名的成员变量和局部变量区分开; this关键字其实代表的是【当前对象】 记住:通过谁调用的方法,谁就是this