OOP详解
Java的编程语言是面向对象的,采用这种语言进行编程称为面向对象编程
(Object-Oriented Programming, OOP)
对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。
面向对象编程有三大特征:封装、继承和多态。
封装(Encapsulation)
封装(Encapsulation)
封装的目的是为了保证变量的安全性,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员
如果不进行封装,类中的实例变量可以直接查看和修改,可能给整个代码带来不好的影响
因此在编写类时一般将成员变量私有化,外部类需要同getter和setter方法来查看和设置变量
类:是对现实生活中事物的描述。
对象:就是这类事物,实实在在存在的个体。
-
对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
-
类:类是一个模板,它描述一类对象的行为和状态。
简单说,对象就是能归类
Java 中的类: 分为属性和方法(函数)
public class Dog{
double size;
String colour;
int age;
String name;
void eat(){};
void run(){};
void sleep(){};
void name(){};
public static void main(String[] args) {
Dog dog = new Dog();
dog.size=5;
dog.age=10;
dog.colour="黄色";
dog.name="球球";
System.out.println(dog.name+"的颜色是"+dog.colour);
}
}
一个类可以包含以下类型变量:
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。
构造函数
如上图,我们可以改造一些,new 对象的时候,就传入属性:
这个时候就引入 构造函数,如果属性是私有的,就引入了set,get函数:
public class Dog{
private double size;
String colour;
int age;
String name;
void eat(){};
void run(){};
void sleep(){};
void name(){};
public double getSize() {
return size;
}
public void setSize(double size) {
this.size = size;
}
public Dog(int age, String name) {
this.age = age;
this.name = name;
}
public static void main(String[] args) {
Dog dog = new Dog(1,"小猫");
dog.setSize(10);
System.out.println(dog.name+"的年龄是"+dog.age+",大小是"+dog.size);
}
}