Java03

面向对象

面向对象学习的三条主线:

  1. Java类及类的成员:属性、方法、构造器;代码块、内部类

  2. 面向对象的三大特征:封装、继承、多态、(抽象)

  3. 其它关键字:this super static final abstract interface package import

面向过程与面向对象

面向过程POP:强调的是功能行为,以函数为最小单位,考虑怎么做

面向对象OOP:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做

类和对象

类:是对一类事物的描述,是抽象的

对象:是实际存在的该类事物的每个个体

设计类,就是设计类的成员

属性=成员变量=filed

方法=成员方法=函数=method

内存解析

堆:存放对象实例

栈:存储局部变量

方法区:存储类信息、常量、静态变量、实时编译的代码

属性

属性(成员变量):直接定义在类的一对{}内

局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部变量

关于权限修饰符:

  • 属性:可以在声明时,使用权限修饰符

    常用的包括:private public protected -->封装性

  • 局部变量:不可以使用权限修饰符

关于默认初始化值

  • 属性:根据其类型,都有默认初始化值

  • 局部变量:没有默认初始化值

在内存中加载的位置:

  • 属性:堆

  • 局部变量:栈

方法

方法的声明:权限修饰符 返回值类型 方法名(形参列表){

方法体

}

说明:

  • 如果方法中有返回值,必须在方法声明中,指定返回值的类型,同时,方法中需要使用return关键字来返回指定类型的变量或常量

  • 方法的使用中,可以调用当前类的方法和属性

匿名对象

new 对象类型();

new 对象类型().方法();

new 对象类型().属性;

匿名对象只能调用一次

方法的重载

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同

 

可变个数的形参

  • 格式:数据类型...变量名

  • 当调用可变个数的形参的方法时,传入的参数可以是0个,1个,……

  • 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组不共存

  • 必须声明在末尾

 

方法参数的值传递机制

关于变量赋值:

  • 如果变量是基本数据类型,此时赋值的是变量所保存的数据值

  • 如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值

方法的形参的传递机制:值传递

  • 如果参数是基本数据类型,此时实参赋给形参的是,实参真是存储的数据值

  • 如果参数是引用数据类型,此时实参赋给形参的是,实参存储数据的地址值

封装与隐藏

高内聚:类的内部数据操作细节自己完成,不允许外部干涉

低耦合:仅对外暴露少量的方法用于使用

将类的属性私有化,同时提供公共的方法来获取(get)和设置(set)属性的值

  • 快捷键 alt +insert

Java规定的4种权限修饰符:private 、缺省 、protected 、public

可以用来修饰属性、方法、构造器、内部类

修饰类只能用public、缺省

构造器的使用

  • 创建类的对象:new + 构造器

如果没有显式定义构造器,系统默认提供一个空参的构造器

定义格式:权限修饰符 类名(形参列表){}

  • 初始化对象的属性----通过形参传值

  • 一个类中定义了多个构造器,彼此构成重载

  • 一旦显式定义了构造器,系统不再提供默认的空参构造器

  • 快捷键 alt + insert

属性赋值的先后顺序

  1. 默认初始化

  2. 显式初始化

  3. 构造器中赋值

  4. 通过 对象.方法 或 对象.属性 赋值

JavaBean

一种Java语言写成的可重用组件,符合如下标准的Java类:

  1. 类是公共的

  2. 有一个无参的公共构造器

  3. 有属性、且有对应的get、set方法

this关键字

this可以用来修饰属性、方法、构造器

this修饰属性和方法:this理解为当前对象

this调用构造器

  1. 我们在类的构造器中,可以显式的使用 this.(形参列表) 的方式,调用本类中指定的其他构造器

  2. 构造器中不能通过 this(形参列表)调用自己

  3. this(形参列表)必须声明在当前构造器的首行

  4. 构造器内部,最多只能声明一个this(形参列表)

pakage关键字

  1. 为了更好的实现项目中的类的管理,提供包的概念

  1. 使用package声明类或接口所属的包,声明在源文件的首行

  2. 包,属于标识符,遵循标识符的命名规则

  3. 每 ". " 一次,就代表一层文件目录

  4. 同一个类,不能定义同名的类或接口

  • java.lang Java语言的核心类

  • java,net 与网络接口相关的类与接口

  • java.io 输入/输出的类

  • java.util 实用工具类

  • java.text 格式化的类

  • java.sql JDBC数据编程的相关类或接口

  • java.awt 抽象窗口工具集

MVC设计模式

三个层次:视图层(view)、控制层(controller)、模型层(model)

import关键字

  1. 在源文件中显式的使用import导入指定包下的某个类、接口

  2. 如果使用的类或接口是java.lang下定义的,可以省略

  3. 如果在源文件中使用了不同包下的同名类,则必须至少一个以全类名的方式显示

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值