您的位置:首页 > 编程语言 > Java开发

Javaoop2

2017-11-13 23:34 113 查看
下面我介绍Java当中很重要,很基础的概念。

构造方法

1.作用:对对象进行初始化

2.特点:

a)方法名使用类名

b)没有返回值,void ,但是可以在构造方法中使用return

c)构造方法的重载:方法名相同,参数个数或类型不同是不同的构造方法(关于方法的重载完了会详细论述)

this关键字

1.代表当前对象的引用

2.通过this.属性,this.方法调用

3.this()调用无参构造,this(“jack”,”28”)调用对应参数的构造方法

4.在构造方法里调用其他构造方法要在第一句

重载

1.重载出现在同一个类中,或由于继承而相关的不同类中(继承后面讲)

2.方法名相同

3.参数个数或类型不同,包括顺序

4.与返回值,访问修饰符无关

成员变量与局部变量

成员变量局部变量
代码位置类中,方法外方法声明或方法中
内存位置堆中栈中,要做初始化
初始化成员变量默认初始化局部变量手动赋值初始化才能使用
生命周期随着对象创建而创建,随着对象消亡而消亡定义的位置开始,方法的结束
注意:在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级

oop三大特性之封装

1.概念

类的抽象是指将类的实现与类的使用分离开,实现的细节被封装并且对用户隐藏,将类的某些信息隐藏在类内部而不允许外部程序直接访问,通过该类提供的方法实现对隐藏信息的操作

2.关键字private

私有的,可以用来修饰成员等,被修饰的成员只能在类的内部访问

3.实现

使用private修饰成员变量

提供getter和setter方法操作成员变量

在方法中编写过滤代码

4.优点

松耦合,高内聚

便于使用者正确使用系统,防止错误修改属性(比如有一个类,人类,假设他有一个属性年龄,在不封装的情况下,我们可以修改这个类的任何一个属性,使用者可能误操作比如年龄设置为负数或1000等很大的数,很明显这种操作是错误的,我们要避免这种操作。可以在set方法中添加过滤代码,如果这个属性修改值异常,就给他一个默认值20,或者抛出异常等操作;还有一些属性我们是不想让调用者看到的,就可以不提供get方法,这样调用者就拿不到)

有助于系统之间的松耦合,提高系统之间的独立性

提高软件的可重用性

降低构建大型系统的风险

包也是Java中的一个基本概念,他的本质就是文件夹,使用来自两个包的不同类,需要通过权限定名来访问。通俗来说,就是你要用别人写的类和方法,就要先知道需要的类的权限定名。例如
Person.cn.edu.suda
如果要用这个类需要导包,即
import Person.cn.edu.suda
导包的位置没有固定要求,但习惯放在代码最上面

访问权限

Java中访问权限根据对象不同分为类的访问权限和类的成员的访问权限

类的权限:

public:该权限的类可以在任意位置访问

默认的:包级访问权限,不在同一个包内不能访问

注意:一个文件中可以有多个类,但是只能有一个public修饰的类,并且public类的类名要和文件名相同

类的成员的权限:

public,protected,默认的,private

四者的权限大小对比:



static关键字

1.static修饰成员变量,成员方法和代码块

2.特点:

1)随着类的加载而加载

2)优先于对象而存在

3)为该类的所有对象所共有

4)可以通过类名调用

注意:static修饰的不能用this调用,静态方法不能调用动态的,不同类中要通过类名调用

3.注意事项:

1)静态方法不能直接访问非静态的成员

2)非静态的方法可以直接访问静态的成员

3)静态的方法和变量可以通过类名调用,可以通过对象调用,但是一般使用类名调用

代码块

局部代码块:方法中,限定局部变量的生命周期

构造代码块:方法外,一般在构造方法之前,调用构造方法时,要先执行构造代码块,把构造方法中相同的代码提取到构造代码块中

静态代码块:方法外,一般在构造方法之前,随着类的加载儿加载

区别:类的构造方法用于初始化类的实例,类的静态块用于初始化类,给类的静态变量赋值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息