重学Java—对象与类

版权声明:未经本人许可,不得使用或转载。 https://blog.csdn.net/mykc208/article/details/81285019

面向对象编程(Object Oriented Programming,OOP)。

如何解释?
1、Java将重点放在数据上(也就是对象)和对象接口上,强调具有功能的对象。即所有的问题或者说现实中的事物看成是一个个对象,每个对象之间有一定联系,将复杂的问题简单化。而OOP就是以对象为中心进行程序开发。
2、面向对象三大特性:封装、继承和多态。就好比找对象、建立对象、使用和维护对象。分开来说:
封装:将事物的属性和行为抽象成一个类,将属性私有化行为公开化,既提高了数据的隐秘性使代码模块化,又使得代码的复用性更好。
继承:将事物共用的属性和行为抽象成一个父类,每一个子类也是特殊的父类(有父类的属性和行为,又有自己的属性和行为),这样既扩展了代码功能又进一步提高了复用性。
多态:封装继承是是为了代码重用,而多态是为了接口重用。多态很重要的一点是:允许父类(或接口)指向子类(或实现类)对象。
重载(overload)和重写(override)是实现多态的两种主要方式。
3、类是对事物即对象的描述,事物的属性和行为分别对应类中的变量和方法。封装和继承是OOP的基础,而多态是OOP的精髓。

this

在每一个方法中,this表示隐式参数。
this关键字有三个应用:
1)调用本类中的属性即成员变量;
2)调用本类中的其他方法;
3)调用本类中的其他构造方法,调用时要放在构造方法的首行:
public class Student { //定义一个类,类的名字为student。
……public Student() { //定义一个方法,名字与类相同故为构造方法
…………this(“Hello!”);
……}
……public Student(String name) { //定义一个带形式参数的构造方法
……}
}
this关键字除了可以引用变量或者成员方法之外,还有一个重大的作用就是返回类的引用。如在代码中,可以使用return this,来返回某个类的引用。此时这个this关键字就代表类的名称。如代码在student类中,那么代码代表的含义就是return student。可见,这个this关键字除了可以引用变量或者成员方法之外,还可以作为类的返回值,这才是this关键字最引人注意的地方。

静态常量System.out

域=field=字段/属性
public class System{
……public static final PrintStream out=…;
}
因为正常情况下out是System类中的静态final常量,所以不能修改;
只有一种特殊情况下可以,System类中有一个setOut方法可以修改final变量的值,因为setOut是本地方法,而不是Java语言实现的,即可以绕过Java的存取控制机制,是一种特殊的方法。

构造器

构造器与类同名,可以定义对象的初始状态。
每个类可以有一个以上的构造器;
构造器没有返回值;
构造器总是伴随着new 操作一起调用。
构造函数的方便之处在于,只要创建了对象就会自动地调用构造函数,保证不会忘记调用。换言之,调用构造函数一般是在创建对象的时候,而创建对象总是伴随着new 操作。
对象构造:
重载:函数名相同,参数不同(参数个数或参数类型)即为重载(overload)。
另外重写:
在子类中,若创建了一个与父类中相同名称、返回类型、参数的方法,只是实现方法不同,以实现不同于父类的功能,这种方式就称为方法的重写,又称为方法的覆盖。
重写应该遵循以下规则:
1)参数列表必须完全和被重写方法的参数列表一致;
2)返回类型必须一致;
3)访问修饰符限制要大于被重写方法的访问修饰符。
public>protected>default>private
4)重写的方法一定不能抛出新的检查异常或者比重写方法声明更加宽泛的检查型异常。例如:父类的方法中声明了一个检查异常 IOException,在重写这个方法时候,就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查类的异常。

检查型异常与非检查型异常

1)所有的检查性异常都继承自java.lang.Exception;所有的非检查性异常都继承自java.lang.RuntimeEx ception。
2)检查性异常和非检查性异常最主要的区别在于其处理异常的方式:检查性异常必须使用try catch或者throws等关键字进行处理,否则编译器会报错;非检查性异常一般是程序代码写的不够严谨而导致的问题,可以通过修改代码来规避。
3)常见的运行时异常(非检查性异常):空指针异常(NullPointerException)、除零异常(ArithmeticException)、数组越界异常(ArrayIndexOutOfBoundsException)等;
常见的检查性异常:输入输出异常(IOException)、文件不存在异常(FileNotFoundException)、SQL语句异常(SQLException)等。

猜你喜欢

转载自blog.csdn.net/mykc208/article/details/81285019
今日推荐