1面向对象:
基本思想是把问题看成是若干个对象组成的,这些对象之间是独立的,但又可以相互配合 连接 和协调,从而共同完成整个程序要实现的任务和功能。
面向对象的三大特征: 封装 继承 多态。
2对象
对象是用来描述客观事物的一个实体。
3类
类是具有相同属性和方法的一组对象的集合。类定义了对象将会有的属性(特征) 和方法(行为)。
类与对象的关系 抽象与具体。
定义类
【访问修饰符】class 类名{
//省略类内部的具体代码
}
访问修饰符可选
类名首字母应大写
属性
类的内部主要包含属性和方法 对象的特征在类中表示称为类的属性
定义属性:
【访问修饰符】数据类型 属性名
public String name;
方法
对象执行操作的行为成为类的方法。
[访问修饰符】返回类型 方法名称(参数类型 参数1,参数2.。。){
//方法体
}
访问修饰符可选
Void 表示没返回值 不必用return 返回具体数据 但可以用return 关键字退出方法
返回类型不为void 一定要用return返回对应类型的结果
public void work(){
Syso
}
创建和使用对象
类名 对象名=new类名();
左边的 类名 为对象的数据类型
右边的类名() 称为类的构造方法
Person hanbing=new Person();
使用对象
引用对象的属性和方法需要使用 .点
对象名 点 属性
对象名 点 方法
对象数组
对象数组的数据类型就是具体的类名 对象数组内存储的就是这个类的对象
每个数组元素就是一个对象 当根据下标找的某个元素时 可以按照对象的使用方法来使用该元素
成员方法
类成员主要包含成员方法和成员变量
带参数的工作方法
带参数的work()方法可以接受 用户输入 的内容
创建work()方法时定义的参数叫做形式参数,简称 形参
调用方法时传入的参数叫做实际参数 ,简称 实参
方法重载
特点:
在同一个类中 方法名相同 参数的个数或类型不同
成员变量
1作用域
类中的属性,也就是直接在类中定义的变量,称作成员变量,它定义在方法的外部
2成员变量可以在声明时赋初值
局部变量
定义在方法中的变量
局部变量在使用前需要赋初值
成员变量与局部变量的区别
1作用域不同
局部变量的作用域仅限于定义它的方法
2初始值不同
Java 可以给成员变量赋初值 但是不会给局部变量赋初值,因此局部变量必须要定义赋值后再使用
3局部变量可以和成员变量同名 并且在使用时局部变量有更高的优先级
数据类型
变量的类型有 基本数据类型和 引用数据类型
引用数据类型有三种:类 数组 接口。
引用数据类型和基本数据类型在传参时的区别
对于基本数据类型 改变一个变量的值不会影响另一个变量的值
对于引用数据类型 赋值指向同一个内存空间 两个一起变
构造方法
主要作用是进行一些数据的初始化
【访问修饰符】方法名 (【参数列表】){
//省略方法体
}
参数列表可选
构造方法的方法名与类名相同
当开发人员没有编写自定义构造方法时 java会自动添加默认构造方法 默认构造方法没有参数
如果自定义了一个或多个构造方法 java不会自动添加默认的构造方法
构造方法的重载
this关键字的用法
书上:
因为this是在对象内部指代自身的引用,所以this只能调用实例变量 实例方法 和构造方法
This不能调用类变量和类方法 ,this也不能调用局部变量
封装概述
封装
实质就是将类的状态信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
封装的步骤
1修改属性的可见性
将Person类中的属性由public 改为private即可
将public改为private后,其他类就无法访问了 如果要访问需设置setter getter 方法
2设置setter getter方法
3设置属性的存取限制
包的作用
Java中只有在不同的包中 类才可以重名
package 包名;
包的命名规则
一个唯一的包名前缀常是全部小写的ASCLL字母,并且是一个顶级域名com edu gov net org
通常使用组织的网络域名的逆序 列:入过域名为javagroup.net, 包可以为
Package net javagroup.research.powerproject;
package cn.bdqn.pack1;
包的使用
1声明包的含义是声明当前类所处的位置
2导入包的含义是声明当前类中要使用到的其它类所处的位置
| 同一类 | 同一包 | 子类 | 其它地方 |
private | 可以 | 不可以 | 不可以 | 不可以 |
默认修饰符 | 可以 | 可以 | 不可以 | 不可以 |
protected | 可以 | 可以 | 可以 | 不可以 |
public | 可以 | 可以 | 可以 | 可以 |
Static关键字
使用static 可以实现通过类名加 .点 直接调用类的成员 不需要创建类的对象 。使用static修饰的属性和方法属于类,不属于某个具体的对象
1 static 修饰的属性称为静态变量或者类变量 没有使用static修饰的属性称为实例变量
2 static修饰属性最常用的场景就是定义使用final关键字修饰的常量
修饰方法
Static 修饰的方法称为静态方法或者类方法 不使用ststic关键字修饰的方法称为实例方法
提示
:
在静态方法中不能直接访问实例变量和实例方法
在实例方法中可以直接调用类中定义的静态变量和静态方法