数据类型转换:
自动类型转换:
等号右边的数据值的数据类型的范围小于左边的数据类型
long num = 110; //右边是int 类型 左边是 long类型
强制类型转换:
int num = 100L;
出现的问题:数据溢出 byte -128~127 200 -3
溢出的数据没有任何的规律 不拿他进行相关的运算的
精度损失:
byte short char 进行运算的时候 先把提升int 类型再进行运算
四则运算:
不同的数据类型进行计算 结果取数据范围最大的
字符串类型 使用加号 是进行拼接
字符串类型可以通过使用加号和任意的数据类型进行拼接 得到的结果还是字符串类型
自增自减:
只能用在变量上 num++ num-- ++num --num
使用:
1.单独使用 ++前 和 后++ 功能一样的
2.混合使用:
++前 先加1后使用
后++ 先使用该数据 使用完了 再加1
赋值运算符:
+= num +=10;//num = num+10;
-= num -=10;//num = num-10;
*= num *=10;//num = num*10;
/= num /=10;//num = num/10;
%= num -=10;//num = num%10;
比较运算符:
> < >= <= != ==
比较运算符结果都是布尔类型
逻辑运算符
与 短路与: && 短路效果
或 短路或:
非
/*
public static void test2() {
int i1 = 5;
boolean result = (i1++ > 5) || (++i1 > 4);
System.out.println(result);
System.out.println(i1);
}
public static void test1() {
int i1 = 5;
boolean result = (i1++ > 5) && (++i1 > 4);
System.out.println(result);
System.out.println(i1);
}
*/
三元运算符
格式:
数据类型 变量名 = 布尔表达式 ? 表达式A : 表达式B;
IDEA的安装和使用:
区分IDEA的项目和模块
只要里面有.idea文件夹 是不是project
里面有对应的src和iml 属于模块
数组:
一个容器 能够存储多个相同类型的数据
定义的格式:
int[] arr; double[] arr;
// int arr[];
数据类型[] 变量;
动态初始化(创建) 只需要知道一个是 数据类型 长度
格式:
数据类型[] 变量 = new 数据类型[长度];
boolean[] b = new boolean[2];
只要是看到中括号[] 优先考虑是不是数组
长度 指的是我们创建的数组里面存储几个具体的元素
new 代表创建一个新的对象 (在内存里面 申请一个新的空间 保存数据)
如何访问数组里面的元素:
根据 索引(下标)
内存:
硬盘 内存 缓存(寄存器 CPU)
** 栈 区 Stack:
1.存储的都是局部变量
2.方法执行的时候会进栈执行
** 堆区 Heap:
new 出来的东西都在堆区里面
* 方法区 :
加载字节码文件
本地方法栈
寄存器
静态初始化:
格式:
数据类型[] 变量 = new 数据类型[]{元素1,元素2,...};
int [] arr = new int[]{2,3,5,8};
静态的省略格式不能拆分成两部分
//例如:int [] arr = new int[]{2,3,5,8};==> int [] arr; arr = new int[]{2,3,5,8};
//错误的案例: int [] arr ={2,3,5,8}; ==> arr ={2,3,5,8};
变量也可以作为静态的元素存储
// 例如: int a =10; int b = 11; int[] arr = {a,b};
两个异常:
ArrayIndexOutOfBoundsException //数组的索引越界异常
int[] arr = new int[5]; //最大索引是4 arr[6]
NullPointerException //空指针异常 有没有给数组进行赋值
//随机生成10个0-9之间的随机数存入数组中
int[] arr = new int[10];
Random rd = new Random();
for (int i = 0; i < arr.length; i++) {
int num = rd.nextInt(10);
arr[i] = num;
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
面向过程:C语言 烤鸭 买鸭子-->杀了-->处理--> 买烤箱 --> 看食谱 --> 操作 ---> 吃
洗衣服 把衣服泡一会--->找个搓板 ---> 手洗 ---> 拧干 -->过水 --->晾起来
注重的是处理的过程 以及自己的亲力亲为
面向对象:去全聚德 做一个烤鸭
洗衣机
关注的对象 全聚德
对象(万物皆对象)
类(学生类) 学生类: 姓名 年龄 性别 吃喝玩乐 学习 敲代码 玩游戏
现实世界中 先有对象 先有类 类 是抽象的
java里面 先有类 再有对象 手机(设计图 ---> 生产手机)
类更像是一个模板
什么是类:
一类对象的共有属性的一个抽取
什么是对象
实在存在的事物
类和对象是什么关系
手机类 和 小米手机
学生类 和 张三
类的创建:
格式:
public class 类名{
// 1.成员变量
// int a = 10;
int age;
数据类型 变量名;
// 2.成员方法
/* public static void show(){
}
*/
public void show(){
}
}
创建一个类:
车(Car)
// 1.成员变量 本身的属性 price brand
// 2.成员方法 本身的行为 跑 兜风
Student
属性:姓名 年龄 性别
行为: eat drink play happy 敲代码 clickCode playLOL
对象的创建:
创建对象的格式:
类名 对象名 = new 类名();
// Phone p = new Phone();
// Car car = new Car();
使用类里面的属性和行为:
属性 (成员变量)
行为 (成员方法)
成员变量和成员方法在调用的时候 需要使用对象名进行调用
调用格式:
对象名.成员变量 = 数据值;//给成员变量赋值
对象名.成员方法(); //调用成员方法
成员变量的初始值 引用数据类型默认值是 null
int 0
double 0.0
boolean false
成员变量和局部变量的不同:
局部变量都是在方法里面(方法的参数 也是属于局部变量) 必须得给初值
成员变量 (成员位置:在类中 其他方法的外面) 如果不给其赋值 系统给直接给其初始化的值
private 修饰什么? 成员变量 成员方法 只能是当前的类才能进行访问
this 使用的位置 实在那:在成员方法里面
this 的功能是 区分成员变量 和局部变量
this 指代的是什么?
因为成员方法的调用必须得使用对象进行调用
成员方法中的 this 指的是调用该方法的对象
封装最主要的好处 是提高代码的安全性
支付功能 支付宝 提供一个 jar包:存储都是.class 文件 API 功能的说明
构造方法的
功能: 创建对象使用
格式:
public 类名(参数列表){
方法体;
}
调用: new 类名(参数列表);
注意点:
1.如果你不写构造方法 编译器免费赠送给你一个不带参数的构造方法
2.如果你写了 哪怕是只有一个 编译器就不再赠送给你无参的构造方法
3.一般创建 我们只创建2个 一个是无参的 另外一个是全参的
一个标准的类(JavaBean)包括哪些内容:
1.成员变量 用 private 修饰
2.构造方法 无参数的 全参的
3.提供 Getter/Setter方法
//show方法只是为了展示 结果展示 toString() |
|