Java面向对象
Java是一种面向对象的编程语言,它的核心思想是将现实世界的事物抽象成对象,通过定义类来描述对象的属性和行为,并通过对象之间的交互来完成程序的功能。
类和对象
在Java中,一个类可以包含多个方法和属性。方法定义了类的行为,属性则定义了类的状态。当我们创建一个对象时,其属性值可以被初始化,并且对象可以调用类中定义的方法来完成特定的操作。
以下是一个简单的Java类的示例:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("Hello, my name is " + name);
}
}
在上面的示例中,我们定义了一个名为Person
的类,它有两个属性:name
和age
,以及一个方法sayHello()
。我们可以通过以下方式来创建一个Person
对象:
Person person = new Person("Tom", 25);
封装性
封装性是面向对象编程中的一个重要概念,它指的是将数据和方法封装在类中,只暴露必要的接口给外界使用。在Java中,我们可以使用访问修饰符来控制类成员的访问权限。
以下是Java中常用的访问修饰符:
public
:可以被任何类访问。protected
:可以被同一包内的类以及子类访问。default
:可以被同一包内的类访问。private
:只能被本类访问。
在上面的示例中,我们使用了private
访问修饰符来限制了name
和age
属性的访问权限。
继承性
继承性是面向对象编程中的另一个重要概念,它允许子类继承父类的属性和方法,从而减少重复代码。在Java中,我们可以使用关键字extends
来实现继承。
以下是一个简单的Java继承示例:
public class Student extends Person {
private String school;
public Student(String name, int age, String school) {
super(name, age);
this.school = school;
}
public void study() {
System.out.println(name + " is studying at " + school);
}
}
在上面的示例中,我们定义了一个名为Student
的子类,它继承了Person
父类,并新增了一个school
属性和一个study()
方法。我们可以通过以下方式来创建一个Student
对象:
Student student = new Student("Tom", 18, "ABC School");
多态性
多态性是面向对象编程中的另一个重要概念,它允许同一种行为可以有不同的表现形式,例如父类引用指向子类对象。在Java中,我们可以使用方法重载和方法覆盖来实现多态性。
以下是一个简单的Java多态示例:
public class Animal {
public void move() {
System.out.println("Animal is moving");
}
}
public class Dog extends Animal {
@Override
public void move() {
System.out.println("Dog is running");
}
}
public class Cat extends Animal {
@Override
public void move() {
System.out.println("Cat is jumping");
}
}
在上面的示例中,我们定义了一个名为Animal
的父类和两个子类Dog
和Cat
,它们都重写了父类的move()
方法。我们可以通过以下方式来实现多态性:
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.move(); // 输出:Dog is running
animal2.move(); // 输出:Cat is jumping
以上就是Java面向对象编程的一些基本概念和特点。