Java 学习

来源:互联网 发布:php rbac 编辑:程序博客网 时间:2024/05/18 13:24

 

参数传递:

在Java语言中,对于哪些数据类型是按值传递,哪些数据类型是按址传递都作出了硬性规定,如下所示:
l 按值传递的数据类型:八种基本数据类型和String
l 按址传递的数据类型:除String以外的所有复合数据类型,包括数组、类和接口

 

面向对象思想:

面向对象思想的基础是将相关的数据和方法放在一起,组合成一种新的复合数据类型,然后使用新创建的复合数据类型作为项目的基础。

 

构造方法:

构造方法和方法无任何关系,它们的功能不同,声明和调用的语法也不相同。

 

构造方法的功能:实现类这种数据类型的变量的初始化。  类是一种复合数据类型,其变量比较复杂,需要专门对该类变量进行初始化。因此出现了构造方法。

方法实现的是逻辑功能,对应于逻辑上的算法,更多的是实现程序逻辑。

所以构造方法是语法结构,而方法是逻辑功能,两者之间根本无关。

 

构造方法声明的语法格式:

访问控制符 构造方法名称(参数列表){

      构造方法体;

 

示例:

public class Box{

     int length;

     int width;

     int height;

 

public Box(){

     length = 10;

     width=10;

     height =10;

}

 

public Box(int l, int w, int h){

     length =l;

     width = w;

     height= h;

}

}

 

Box类声明两个构造方法,一个没有参数,一个包含三个int类型的参数。

 

对象:

对象(Object)是面向对象技术的核心,按照面向对象的思考方式,现实中的每个实体都是一个对象,比如一个人、数据库中的一张表等,总结起来, 就是面向对象技术中的经典语句——万事万物皆对象。

面向对象提供了一种思考方式,降低了认知的复杂性;

也是一种设计方式,通过模块化设计,降低了设计的复杂性。

 

语法角度来看,对象是一个复杂的变量。其内部包含属性(数据),也包含方法(功能)。

java中把复合数据类型(包括数组、类和接口)的变量都称作对象。

 

对象的语法有四个方面:对象声明、对象初始化、引用对象中的属性和引用对象中的方法。

 

对象声明

数据类型 对象名;

 此处数据类型必须为复合数据类型,基本数据类型声明的结构只能为变量,而不能为对象。

 

对象初始化

对象初始化都是通过直接或间接调用构造方法实现。对象的初始化与声明可以写在一起,其语法格式如下:

 

引用对象中的属性

引用对象中的某一个属性:对象名.属性名

 

引用对象中的方法

引用对象内部的功能:对象名.方法名(参数)

 

对象的存储

对象是一个复合数据类型的变量,其存储方式和一般变量的存储方式不同。

在Java执行环境中,存储区域一般分为两类:

1 栈内存 该区域存储基本数据类型

2 堆内存 存储实际的对象内容

 

面向对象三大特性


封装性 

将复杂的内部结构隐藏起来,用一个统一的名字来使用。在面向对象技术中,类是典型的封闭性的体现,类将一组属性和功能组合成一个统一的结构,并使用odqk来代表该结构。

优势:隐藏每个类的内部实现,从而既方便项目的分解也降低了项目的难度。

继承性

当类与类之间存在包含关系,即一个类是另一个类的一种时,可以使用继承。

优势:充分利用了已有类的结构和功能,极大地降低了类内部的代码重复。

多态性

是面向对象技术中最灵活的特性,其依赖继承特性,可以把多态理解为继承性的扩展或者深入。

优势:增强项目的可扩展性,提高代码的可维护性

 

继承语法

extends 关键字

继承说明

两个类具有继承关系,不同点:

1. 子类拥有父类所有属性,

子类继承父类所有属性,在父类中声明的属性在子类内部可以直接调用。说明:访问控制符限制无法使用

 

2. 子类拥有父类所有方法,

子类继承父类所有方法,在父类中声明的方法在子类内部可以直接调用。说明:访问控制符限制无法使用

 

3. 子类不拥有父类的构造方法

子类不继承父类的构造方法

 

4. 子类类型是父类类型

子类类型的对象可以自动转换为父类类型的对象,父类类型的对象则需要强制转换为子类的对象,转换的语法与基本类型转换语法相同。

 

继承需要注意的问题:

1. 方法覆盖:在子类内部重新实现父类中的方法,称为方法覆盖(override).

优点:保持了类的结构统一,使项目整体结构保持统一,便于项目的维护。

 

2. 属性覆盖没有必要

 

 

多态性

 

对象类型的多态性

指声明对象的类型不是对象的真正类型,而对象的真正类型由创建对象时调用的构造方法进行决定。

e.g. SuperClass sc = new SubbClass1();

这里声明了一个SuperClass类型的对象sc,然后使用SuperClass的子类SubbClass1的构造方法进行创建,因为子类型的对象也是父类类型的对象。

对象类型的多态性极大地方便了对象的存储和传递.

 

对象方法的多态

对象的方法的多态基于方法的覆盖,也就是该对象调用的方法具体是子类的方法还是父类的方法,由创建对象时使用的构造方法决定,而不是由声明对象时的类型决定.

 


原创粉丝点击