声明变量和赋值
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更加直观
while
循环次数不确定,需要根据条件是否成立的,使用while
1 2 3 4 5 6 7 8 9 10
| while (条件) { }
do { } 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) { } else if (条件2) { } else { }
|
switch
需要特定的值成立时,switch语句更加简洁易读
1 2 3 4 5 6 7 8 9 10
| switch (表达式) { case 值1: break; case 值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(); animal2.makeSound();
|
接口与实现
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);
|
在这个示例中,我们首先定义了一个名为 Shape
的接口,其中有一个 getArea
方法,用于获取图形的面积。然后,我们创建了一个实现了 Shape
接口的类 Circle
,该类表示一个圆,它有一个属性 radius
表示半径。
在 Circle
类中,我们实现了 getArea
方法,根据圆的半径计算并返回面积。这是我们遵循接口要求的方式来为每种形状提供计算面积的方法。
在主程序中,我们使用多态性的概念。我们声明了一个 Shape
类型的引用变量 shape
,并将其初始化为一个 Circle
对象。由于 Circle
实现了 Shape
接口,我们可以使用 Shape
引用变量来引用 Circle
对象。
然后,我们调用 shape.getArea()
方法,实际上是调用了 Circle
类中的 getArea
方法。这是因为 shape
引用的对象是 Circle
类的一个实例。最后,我们将计算得到的面积输出。
通过这个示例,你可以看到多态性的好处:无论是 Circle
、Square
还是其他实现了 Shape
接口的类,只要它们实现了相同的方法,我们就可以使用相同的接口引用来调用这些方法,使得代码更加灵活和可扩展。