一、基本类型
1.1八大基本类型
- 数值型:整数类型(byte、short、int、long)和浮点类型(float、double)。
- 字符型:char。
- 布尔型:boolean。
数据类型 | 占用字节 | 默认值 | 数据范围 | |
---|---|---|---|---|
整数 | byte | 1 | 0 | -2^7~2^7-1 |
short | 2 | 0 | -2^15~2^15-1 | |
int | 4 | 0 | -2^31~2^31-1 | |
long | 8 | 0 | -2^63~2^63-1 | |
浮点数 | float | 4 | 0.0f | -2^31~2^31-1 |
double | 8 | 0.0d | -2^63~2^63-1 | |
字符 | char | 2 | 空 | 0~2^15-1 |
布尔 | boolean | 1 | false | true、false |
1.2类型转换
数据范围从小到大:
byte、short、char --> int --> long --> float --> double,其中byte、short、char在运算时自动提升为int。
1.2.1自动类型转换
- 代码不需要特殊处理,自动完成转换;
- 数据范围从小到大。
1.2.2强制类型转换
- 代码需要进行特殊的格式处理,不能自动完成;
- 数据范围从大到小;
- 格式:范围小的类型 范围小的变量名 = (范围小的类型)范围大的数据。
强制类型转换一般不建议使用,因为可能发生精度损失(高精度转低精度)和数据溢出(例long转int)。
二、数组
2.1Java的数组声明和C语言的区别
//Java
int[] a=new int[3];
int b[];
b=new int[5];
//C
int a[3];
Java中[ ]不可以指定大小,只能在new后面来指定数组大小。
C中[ ]可直接声明数组大小。
2.2foreach遍历一个数组
int[] a=new int[]{1,2,3,4};
for(int i:a){
System.out.println(i);
}
三、函数
3.1Java的主方法(函数)
public static void main(String[] args) {}
3.2如何声明一个普通方法函数
[修饰符1 修饰符2 ...] 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2, ...) {
// 方法体
[return 返回值;]
}
3.3如何在主方法里面调用普通方法
public class Example {
// 声明一个返回两数之和的方法
public static int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
int sum = add(3, 4);
System.out.println("The sum is: " + sum);
}
}
四、面向对象
4.1类和对象
- 类是一个模板,它描述一类对象的行为和状态(比如一张汽车设计图纸)。
- 对象表示现实世界中一个具体的事物。对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。(比如根据汽车设计图纸设计出来的汽车)。
4.2三大特性
4.2.1封装
封装就是把事物封装成类,将类的某些信息隐藏在类内部
,不允许外部程序直接访问,而是通过该类提供的方法
来实现对隐藏信息的操作和访问。
作用:尽可能地隐藏对象的内部实现细节、控制用户对类的修改和访问权限(体现:private属性) 提高代码的可维护性。
封装主要解决的问题是类的安全性和可维护性 ,使得类的实现细节被隐藏,只暴露出有限的接口和功能给外部使用,从而减少了类之间的耦合性。同时,封装还可以实现数据隐藏和数据保护,提高程序的可靠性和可扩展性。
4.2.2继承
继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。但Java只支持单继承 ,一个子类只能继承一个父类,不能继承多个父类 ,但是可以多重继承。
关键字:extends
格式: class 子类 extends 父类{ }
继承主要解决的问题就是共性的抽取,实现代码的复用。
4.2.3多态
多态就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时产生不同的状态。
在Java中要实现多态,必须要满足以下几个条件:
- 必须在继承的体系下
- 子类必须要对父类中的方法进行重写
- 通过父类的引用调用重写的方法
多态主要解决的问题是代码的可重用性和扩展性,使得代码更加灵活和易于维护。通过多态,我们可以将不同的对象看做是同一种类型,从而使得我们可以使用同一种接口来操作这些对象,而不必关心具体的实现细节。
4.3局部变量和成员变量
- 局部变量是在方法中定义的变量,它的作用域为这个方法中。
- 成员变量是在类中定义的变量,它的作用域为这个类中。
4.4构造方法
构造方法是类的一种特殊方法,用来初始化类的一个新的对象,在创建对象(new 运算符)之后自动调用。
class Dog{
String name;
int age;
Dog(String Name,int Age){
name=Name;
age=Age;
}
}
类里面会隐式带一个无参构造方法,如果进行了显示声明,那自带的隐式构造就没有效果了。