一、变量
1. 变量的概念
变量是程序运行过程中可以改变的量,用于存储数据。例如,在计算圆的面积时,半径就是一个变量,因为不同的圆有不同的半径值。
2. 变量的类型
局部变量:在方法、构造方法或者语句块中声明的变量。例如,在一个计算两个数之和的方法中,定义的两个数就是局部变量。
实例变量(成员变量):在类方法外声明的变量,没有static修饰。例如,一个学生类中的姓名、年龄等属性就是实例变量,每个学生对象都有自己独特的姓名和年龄。
类变量(静态变量):在类方法外声明的变量,用static修饰。例如,一个学校类中的学生总数就可以是一个类变量,因为所有学生对象共享这个总数。
3. 变量的作用域
局部变量只在声明它的方法、构造方法或者语句块中可见。实例变量对于类中的方法、构造方法或者语句块是可见的,一般情况下应该把实例变量设为私有,通过使用访问修饰符可以使实例变量对子类可见。类变量与实例变量具有相似的可见性,但为了对类的使用者可见,大多数静态变量声明为public类型。
二、数据类型

1. 基本数据类型
整型:byte(8位有符号整数,最小值是
128,最大值是127)、short(16位有符号整数,最小值是 - 32768,最大值是32767)、int(32位有符号整数,最小值是 - ,最大值是)、long(64位有符号整数,最小值是 - 54775808,最大值是54775807)。
浮点型:float(单精度、32位、符合IEEE 754标准的浮点数)、double(双精度、64位、符合IEEE 754标准的浮点数)。
字符型:char(16位Unicode字符,最小值是,最大值是)。
布尔型:boolean(只有true和false两个取值)。
2. 引用数据类型
包括类、接口和数组等。例如,定义一个字符串变量String str = "Hello World";,这里的String就是引用数据类型。
三、控制结构
1. 顺序结构
程序按照语句的先后顺序依次执行。例如,先定义变量,再进行计算,最后输出结果。
2. 选择结构
if语句:根据条件判断执行不同的代码块。例如,判断一个数是否大于10,如果大于则输出"大于10",否则输出"小于等于10"。
switch语句:根据表达式的值匹配不同的case分支。例如,根据一个表示星期几的数字,输出对应的星期几的名称。
3. 循环结构
for循环:适用于已知循环次数的情况。例如,计算1到100的和,可以使用for循环从1加到100。
while循环:适用于条件满足时执行循环体的情况。例如,当用户输入的数不等于0时,不断进行某种计算。
do
while循环:先执行一次循环体,再判断条件是否满足。例如,至少执行一次读取用户输入的操作,然后根据输入内容决定是否继续循环。
四、数组
1. 数组的定义
数组是一种数据结构,用于存储多个相同类型的数据元素。例如,定义一个整型数组int[] arr = new int;,表示创建了一个可以存储5个整数的数组。
2. 数组的访问
通过索引访问数组元素,索引从0开始。例如,arr表示访问数组arr的第一个元素。
3. 数组的初始化
可以在定义数组时初始化,也可以在后续代码中为数组元素赋值。例如,int[] arr = {1, 2, 3, 4, 5};或者for (int i = 0; i < arr.length; i++) { arr[i] = i + 1; }。
五、方法
1. 方法的定义
方法是一段完成特定功能的代码块,定义了方法的名称、参数列表和返回类型。例如,public int add(int a, int b) { return a + b; }定义了一个名为add的方法,接受两个整数参数,返回它们的和。
2. 方法的调用
通过方法名和参数列表来调用方法。例如,int result = add(3, 5);调用了add方法,并将返回值赋给result变量。
3. 方法的重载
同一个类中可以有多个同名方法,但参数列表不同。例如,既可以有add(int a, int b)方法,也可以有add(double a, double b)方法,根据传入的参数类型不同,编译器会自动选择合适的方法进行调用。
六、类和对象
1. 类的定义
类是对象的模板,定义了对象的属性和行为。例如,定义一个学生类:
java
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
public void study {
System.out.println(name + "正在学习");
2. 对象的创建
通过类的构造方法创建对象。例如,Student student = new Student("张三", 20);创建了一个名为张三,年龄为20的学生对象。
3. 对象的属性和方法访问
通过对象名访问属性和方法。例如,student.name可以访问学生对象的姓名属性,student.study可以调用学生对象的学习方法。
七、继承
1. 继承的概念
继承是面向对象编程的重要特性,允许一个类继承另一个类的属性和方法。例如,定义一个大学生类继承自学生类:
java
public class CollegeStudent extends Student {
private String major;
public CollegeStudent(String name, int age, String major) {
super(name, age);
this.major = major;
public void doResearch {
System.out.println(name + "正在进行" + major + "专业的研究");
2. 继承的实现
通过extends关键字实现继承。在子类的构造方法中,可以通过super关键字调用父类的构造方法。
3. 方法重写
子类可以重写父类的方法,以实现不同的行为。例如,大学生类可以重写学生类的study方法,增加一些与专业相关的学习内容。
八、多态
1. 多态的概念
多态是指同一个方法在不同对象上有不同的表现形式。例如,定义一个动物类和它的子类狗和猫,它们都有一个叫的方法,但狗和猫的叫声不同。
2. 多态的实现
通过方法重写和向上转型实现多态。例如,将狗和猫对象都作为动物类型的变量来引用,调用它们的叫的方法时,会根据实际对象的类型执行相应的方法。
九、接口

1. 接口的定义
接口是一种特殊的抽象类型,只包含方法签名而不包含方法体。例如,定义一个可飞行的接口:
java
public interface Flyable {
void fly;
2. 接口的实现
类通过implements关键字实现接口,并提供接口中所有方法的具体实现。例如,定义一个鸟类实现Flyable接口:
java
public class Bird implements Flyable {
@Override
public void fly {
System.out.println("鸟儿正在飞翔");
3. 接口的多实现
一个类可以实现多个接口,从而具备多种行为。例如,一个既能飞行又能游泳的动物类,可以同时实现Flyable接口和Swimmable接口。