标签:类对象 this super 需要 决定 splay 错误 类型 成员方法
Java是面向对象的编程语言,与面向过程(procedure-oriented programming)相对,对象是面向对象编程的核心.对象其实就是真实世界中的实体,对象与实体是一一对应的,换言之,真实世界中的每一个实体就是一个对象,它是一种具体的概念.
程序员从执行者转化成了指挥者
完成需求时:
类(class)和对象(object)是面向对象的核心概念。
class Person{
String name;
int age;
boolean isMarried;
//↑属性,或成员变量
//↓方法,或函数
public void walk(){
System.out.println("人走路...");
}
public String display(){
return "name : " + name + ", age : " + age + ", Married : " + isMarried;
}
}
使用者对类内部定义的属性(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。
public class Animal { //应该将legs属性保护起来,防止乱用。保护的方式:信息隐藏
public int legs;
public void eat(){
System.out.println(“Eating.”);
}
public void move(){
System.out.println(“Moving.”);
}
}
public class Zoo{
public static void main(String args[]){
Animal xb=new Animal();
xb.legs=4;
System.out.println(xb.legs);
xb.eat();xb.move();
}
}
Java中通过将数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现对该属性的操作,以实现下述目的:
隐藏一个类中不需要对外提供的实现细节;
使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;
便于修改,增强代码的可维护性;
为什么要有继承?
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
此处的多个类称为子类,单独的这个类称为父类(基类或超类)。可以理解为:“子类 is a 父类”
类继承语法规则:
class Subclass extendsSuperclass{}
Java只支持单继承,不允许多重继承
class SubDemo extends Demo{ } //ok
class SubDemo extends Demo1,Demo2...//error
定义:在子类中可以根据需要对从父类中继承来的方法进行改造,也称方法的重写、重置。在程序执行时,子类的方法将覆盖父类的方法。
要求:
在Java类中使用super来调用父类中的指定操作:
注意:
是面向对象中最重要的概念,在java中有两种体现:
子类对象的多种父类形态, 换言之就是把子类对象作为父类对象来使用.
Person p = new Student();
Object o = new Person();
//Object类型的变量o,指向Person类型的对象
o = new Student();
//Object类型的变量o,指向Student类型的对象
Student m = new Student();
m.school = “pku”; //合法,Student类有school成员变量
Person e = new Student();
e.school = “pku”; //非法,Person类没有school成员变量
属性和方法是在编译时确定的,编译时引用变量e为Person类型,Person类型中并没有school成员变量,因而编译错误, 方法的使用也是一样
// 正常的方法调用
Person e = new Person();
e.getInfo();
Student e = new Student();
e.getInfo();
// 虚拟方法调用(多态情况下)
Person e = new Student();
e.getInfo(); //调用Student类的getInfo()方法
编译时e为Person类型,而方法的调用是在运行时确定的,所以调用的是Student类的getInfo()方法。——动态绑定
标签:类对象 this super 需要 决定 splay 错误 类型 成员方法
原文地址:https://www.cnblogs.com/earnest-jie/p/12661530.html