Java 面向对象(一)

来源:互联网 发布:企业网站域名备案表 编辑:程序博客网 时间:2024/05/18 01:49

面向对象

类,对象,属性,方法,构造方法,重载,封装,继承,重写,访问权限,多态,抽象类,接口,内部类,static,final,instanceof

类与对象

即使用JAVA的程序表示生活中概念的“类别”;

public class Person {}

类也可以理解为JAVA的程序的某种数据类型;

Person p;

对象

是类的具体表现,或具体存在;
对象,也称之为“实例(intance)”;
在JAVA中可以根据类创建对象,创建的过程称之为:实例化

p = new Person();

类是对象的抽象的描述,对象是类的具体的表现形态

属性与方法

每一个类都可以有若干个属性或方法,当某个类定义了一些属性和方法后,该类的每个对象都将具有这些属性和方法;
属性与方法是用于描述类的特征的,由于都直接定义在某个类中,所以,它们都是类的成员(member);

public class Person {  public String mName;  public void run() {  }}

使用属性,可以描述那些使用值进行量化的特征,通常是一个名词;
使用方法,可以描述一些行为模式,或者动作,通常是一些动词;

计算机的组成

  • 运算器
  • 控制器
  • 存储器
  • 输入设备
  • 输出设备

存储器

  • 主要存储器 / 主存 / 内部存储器 / 内存
  • 辅助存储器 / 辅存 / 外部存储器 / 外存

内存

ROM

ROM = Read Only Memory

ROM是一种只读型存储器,即只能读取内容,不可以写入内容,通常表现为PC机上的COMS芯片;

RAM

RAM = Random Access Memory

RAM是一种随机存取存储器,既可以读,也可以写,是整个计算机中存取速度仅此于CACHE的存储设备;

RAM的典型表现就是内存条;

RAM是整个计算机中,除了CACHE以外,CPU能够直接访问的 唯一 硬件;所以,它是CPU与其它所有设备之间交换数据的桥梁;

RAM用于存储正在执行的程序和数据;

RAM一旦断电,所有数据将被清空;

CACHE

CACHE是高速缓存,是整个计算机系统中存取速度最快的存储设备,也是容量最小的存储设备;

CACHE是集成在CPU内部的;

CACHE是用于存储运算的中间结果的;

构造方法

在一个类中,与类的名称相同,不声明返回值类型的方法,叫做构造方法;

public class Person {    public Person() {    }}

构造方法在创建类的对象时,会被执行,通常语法为:

Person p = new Person();

每个类中都有构造方法,如果开发者没有显式的声明构造方法,则编译器(将*.java源文件编译成对应的*.class文件的工具)会自动的添加无参数的构造方法;所以,以下2段代码是等效的:

public class Person {}
public class Person {    public Person() {    }}

如果开发者已经显式的声明了构造方法,则编译器不会再添加构造方法;

在同一个类中,构造方法是可以重载的,例如:

public class Person {    public Person() {    }    public Person(String name) {    }}

使用构造方法,可以快速的创建对象并指定对象的某些属性值,例如,普通的使用情况:

public class Person {    public String name;    public int age;}
Person p = new Person();p.name = "Jack";p.age = 18;

如果使用了构造方法:

public class Person {    public String name;    public int age;    public Person(String personName, int personAge) {        name = personName;        age = personAge;    }}
Person p = new Person("Jack", 18);

由于显式的声明构造方法后,编译器不会再自动添加构造方法,所以,使用构造方法,也可以对创建对象的过程进行约束,例如以上代码就约束了创建对象时必须指定name属性和age属性的值

所以,在什么时候会需要显式的定义构造方法:

  • 快速的确定类的某些属性的属性值
  • 强制约束必须指定某些参数

事实上,每个构造方法的作用是创建类的对象,在构造方法中,都会调用父类的构造方法,即:先创建出服父类的对象!所以,以下3段代码时等效的:

public class Person {}
public class Person {    public Person() {    }}
public class Person {    public Person() {        super(); // 调用父类的构造方法,该语句只能出现在子类的构造方法中,并且必须是第1条有效语句        // ???    }}

重载

重载(Overload)是在同一个类里,允许存在多个同名的方法,这些方法必须有不同的参数列表,例如参数的数量不同,或者参数的数据类型不同,或者参数的顺序不同,例如;

public class Test {    public void run() {    }    // 以下重载会发生冲突,重载无视返回值类型    // public int run() {        // return 0;    // }    public void run(int i) {    }    public void run(String str) {    }    public void run(String str, int i) {    }    public void run(int i, String str) {    }    public void run(String str, int i, int j) {    }    public void run(int i, int j, String str) {    }    // 以下重载会发生冲突,重载无视参数的名称,只关心参数的数据类型    // public void run(int j, int i, String str) {    // }}
0 0
原创粉丝点击