抽象数据类型+面向对象编程基础

Posted hyfer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象数据类型+面向对象编程基础相关的知识,希望对你有一定的参考价值。

1.基本数据类型、引用数据类型

技术图片

 

基本数据类型

技术图片

 

1、在基本数据类型中,除了boolean类型所占长度与平台有关外,其他数据类型长度都是与平台无关的。比如,int永远占4个字节(1 Byte = 8 bit)。

2、void不是基本数据类型

3、基本数据类型的默认值仅在作为类中属性时生效,在方法内部必须先对基本数据类型变量赋值后才能使用,否则编译不通过。

 

引用数据类型

 

引用类型(reference type)指向一个对象,不是原始值,指向对象的变量是引用变量。

在java里面除去基本数据类型的其它类型都是引用数据类型,自己定义的class类都是引用类型,可以像基本类型一样使用。

引用类型常见的有:String,StringBuffer,ArrayList,HashSet,HashMap等。
如果要对比两个对象是否相同,则需要使用equals()方法,但有一点需要注意:equals()方法的默认行为是比较引用。如果是你自己写的类,你应该为它重写equals()来比较对象的内容。大多数Java类库都实现了比较对象内容的equals()方法。

 

两者比较

技术图片

 

2.类型检查


静态类型检查:编译时可在编译阶段发现错误,避免了将错误带入到运行阶段,可提高程序正确性/健壮性 

关于“类型”的检查,不考虑值

①语法错误

②类名、函数名错误

③参数数目错误

④参数类型错误

⑤返回值类型错误

⑥其他情况,如变量可能没有初始化,在一些条件分支里声明的变量无法在分支外使用等等

 

动态类型检查:运行时

关于“值”的检查

①非法的参数值,如除零错误

②非法的返回值,如返回的具体值不能被转换成对应的类型

③越界

④空指针

 

 3.可变对象、不可变对象、final关键字

不变对象:如String,一旦被创建,始终指向同一个值/引用。如果编译器无法确定final变量不会改变,就提示错误,这也是静态类型检查的一部分。 

可变对象:如StringBuilder,拥有方法可以修改自己的值/引用

比较:

使用不可变类型,对其频繁修改会产生大量的临时拷贝(需要垃圾回收) ,使用可变类型会减少拷贝

②使用可变数据类型,可以提高性能,方便在多个模块之间共享数据。

③使用不可变数据类型,更容易达到安全要求。

final关键字:

修饰类当用final去修饰一个类的时候,表示这个类不能被继承。

注意:

a. 被final修饰的类,final类中的成员变量可以根据自己的实际需要设计为fianl。

b. final类中的成员方法都会被隐式的指定为final方法。

被final修饰的方法不能被重写。

注意:

a. 一个类的private方法会隐式的被指定为final方法。

b. 如果父类中有final修饰的方法,那么子类不能去重写。

修饰局部变量

注意:

a. 必须要赋初始值,而且是只能初始化一次。

④修饰成员变量

注意:

a. 必须初始化值。

b. 被fianl修饰的成员变量赋值,有两种方式:1、直接赋值 2、全部在构造方法中赋初值。

c. 如果修饰的成员变量是基本类型,则表示这个变量的值不能改变。

d. 如果修饰的成员变量是一个引用类型,则是说这个引用的地址的值不能修改,但是这个引用所指向的对象里面的内容还是可以改变

 

以上是关于抽象数据类型+面向对象编程基础的主要内容,如果未能解决你的问题,请参考以下文章

C++泛型基础

4.python面向对象编程基础

python基础-面向对象编程

[Python]学习基础篇:面向对象编程

Java01基础-07面向对象

JAVA学习:Java面向对象编程基础