Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

声明变量和赋值

1
2
3
4
5
6
7
8
9
// 声明变量
int age;

// 初始化变量
age = 25;

// 声明并初始化变量
double price = 19.99;

类的定义和创建对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 定义类
class car {
String name;
int age;

void introduce() {
System.out.println("我是" + name + "车,今年车龄:" + age + "岁。");
}
}

// 创建对象
car c = new car();
c.name = "Bumblebee";
c.age = 20;
c.introduce();

循环

for

已知道迭代次数,或者知道迭代条件时,for更加直观

1
2
3
for (初始化; 条件; 更新) {
// 循环体代码
}

while

循环次数不确定,需要根据条件是否成立的,使用while

1
2
3
4
5
6
7
8
9
10
while (条件) {
// while循环体代码
}



do {
// do while循环体代码
} while (条件);

选择

if

从简单条件到复杂条件,if都可以

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
if (条件) {
// 如果条件为真,执行这里的代码
}




if (条件) {
// 如果条件为真,执行这里的代码
} else {
// 如果条件为假,执行这里的代码
}



if (条件1) {
// 如果条件1为真,执行这里的代码
} else if (条件2) {
// 如果条件2为真,执行这里的代码
} else {
// 如果前面条件都为假,执行这里的代码
}



switch

需要特定的值成立时,switch语句更加简洁易读

1
2
3
4
5
6
7
8
9
10
switch (表达式) {
case 值1:
// 如果表达式的值与值1匹配,执行这里的代码
break;
case 值2:
// 如果表达式的值与值2匹配,执行这里的代码
break;
default:
// 如果没有匹配的值,执行这里的代码
}

方法的定义和调用

1
2
3
4
5
6
7
8
// 定义方法
public int add(int a, int b) {
return a + b;
}

// 调用方法
int sum = add(5, 3);

数据结构

数组

1
int[] numbers = {1, 2, 3, 4, 5};

集合

1
2
3
4
Set<String> names = new HashSet<>();
names.add("Alice");
names.add("Bob");
System.out.println(names);

列表

1
2
3
4
List<Integer> scores = new ArrayList<>();
scores.add(85);
scores.add(90);
System.out.println(scores);

映射

1
2
3
4
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 25);
ages.put("Bob", 30);
System.out.println(ages);

栈

1
2
3
4
Stack<String> stack = new Stack<>();
stack.push("First");
stack.push("Second");
System.out.println(stack);

对列

1
2
3
4
Queue<Double> queue = new LinkedList<>();
queue.offer(3.14);
queue.offer(2.71);
System.out.println(queue);

树

1
2
3
4
5
6
7
8
9
10
11
12
13
class TreeNode {
int value;
TreeNode left;
TreeNode right;

TreeNode(int value) {
this.value = value;
}
}
TreeNode root = new TreeNode(10);
root.left = new TreeNode(5);
root.right = new TreeNode(15);
System.out.println(root.value);

链表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class ListNode {
int value;
ListNode next;

ListNode(int value) {
this.value = value;
}
}

ListNode head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
System.out.println(head.value);

异常处理

异常处理是在编程中用于处理可能发生的错误情况的一种机制。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("发生除以零的异常:" + e.getMessage());
catch (ArithmeticException e) {
// 处理算术异常
} catch (NullPointerException e) {
// 处理空指针异常
} catch (Exception e) {
// 处理其他异常
} finally {
System.out.println("无论是否发生异常,这里都会执行。");
}

继承和多态

多态:多态性的实际效果是,你可以使用父类的引用变量来引用子类的对象,然后根据实际对象的类型调用相应的方法。

@Override :是Java中的一个注解(Annotation),用于标识一个方法是在子类中对父类中的方法进行重写(覆盖)。当你在子类中重写父类的方法时,为了确保你的重写是正确的,你可以使用 @Override 注解。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 父类定义
class Animal {
void makeSound() {
System.out.println("Animal makes a sound");
}
}

// 子类定义,继承父类
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Dog barks");
}
}

// 多态示例
Animal animal1 = new Animal();
Animal animal2 = new Dog();
animal1.makeSound(); // 输出:Animal makes a sound
animal2.makeSound(); // 输出:Dog barks

接口与实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 接口定义
interface Shape {
double getArea();//得面积
}

// 类实现接口
class Circle implements Shape {
double radius;//得半径

Circle(double r) {
radius = r;
}

@Override
public double getArea() {
return Math.PI * radius * radius;
}
}

// 实例化并调用接口方法
Shape shape = new Circle(5);
double area = shape.getArea();
System.out.println("Circle area: " + area); // 输出:Circle area: 78.53981633974483

在这个示例中,我们首先定义了一个名为 Shape 的接口,其中有一个 getArea 方法,用于获取图形的面积。然后,我们创建了一个实现了 Shape 接口的类 Circle,该类表示一个圆,它有一个属性 radius 表示半径。

在 Circle 类中,我们实现了 getArea 方法,根据圆的半径计算并返回面积。这是我们遵循接口要求的方式来为每种形状提供计算面积的方法。

在主程序中,我们使用多态性的概念。我们声明了一个 Shape 类型的引用变量 shape,并将其初始化为一个 Circle 对象。由于 Circle 实现了 Shape 接口,我们可以使用 Shape 引用变量来引用 Circle 对象。

然后,我们调用 shape.getArea() 方法,实际上是调用了 Circle 类中的 getArea 方法。这是因为 shape 引用的对象是 Circle 类的一个实例。最后,我们将计算得到的面积输出。

通过这个示例,你可以看到多态性的好处:无论是 Circle、Square 还是其他实现了 Shape 接口的类,只要它们实现了相同的方法,我们就可以使用相同的接口引用来调用这些方法,使得代码更加灵活和可扩展。

评论