JAVA 之 面向对象

面向过程思想概述

面向对象思想概述
    面向对象是基于面向过程的编程思想
面向对象思想特点
    是一种更符合我们思想习惯的思想
    可以将复杂的事情简单化
    将我们从执行者变成了指挥者
    角色发生了转换

面向对象思想举例

面向对象思想举例
    买电脑
    吃饭
    洗衣服
    万事万物皆对象
面向过程思想和面向对象思想的代码举例
    把大象装进冰箱

面向对象开发,设计,特征

面向对象开发
    就是不断的创建对象,使用对象,指挥对象做事情。
面向对象设计
    其实就是在管理和维护对象之间的关系。
面向对象特征
    封装(encapsulation)
    继承(inheritance)
    多态(polymorphism)

类与对象关系

类:是一组相关的属性和行为的集合
对象:是该类事物的具体体现
举例:
    类   学生
    对象  班长就是一个对象

这里写图片描述

类的定义

现实世界的事物
    属性  人的身高,体重等
    行为  人可以学习,吃饭等

Java中用class描述事物也是如此
    成员变量    就是事物的属性
    成员方法    就是事物的行为
定义类其实就是定义类的成员(成员变量和成员方法)

成员变量和局部变量的区别

在类中的位置不同
    成员变量 类中方法外
    局部变量 方法内或者方法声明上
在内存中的位置不同
    成员变量 堆内存
    局部变量 栈内存
生命周期不同
    成员变量 随着对象的存在而存在,随着对象的消失而消失
    局部变量 随着方法的调用而存在,随着方法的调用完毕而消失
初始化值不同
    成员变量 有默认的初始化值
    局部变量 没有默认的初始化值,必须先定义,赋值,才能使用

匿名对象

匿名对象:就是没有名字的对象。
    是对象的一种简化表示形式
匿名对象的两种使用情况
    对象调用方法仅仅一次的时候
    作为实际参数传递

封装概述

封装概述
    是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:
    隐藏实现细节,提供公共的访问方式
    提高了代码的复用性
    提高安全性。
封装原则:
    将不需要对外提供的内容都隐藏起来。
    把属性隐藏,提供公共方法对其访问。

private关键字

private关键字:
    是一个权限修饰符。
    可以修饰成员(成员变量和成员方法)
    被private修饰的成员只在本类中才能访问。

private最常见的应用:
    把成员变量用private修饰
    提供对应的getXxx()/setXxx()方法
    一个标准的案例的使用

this关键字

this:代表所在类的对象引用
记住:
    方法被哪个对象调用,this就代表那个对象

构造方法

构造方法作用概述
    给对象的数据进行初始化

构造方法格式
    方法名与类名相同
    没有返回值类型,连void都没有
    没有具体的返回值

构造方法注意事项
    如果你不提供构造方法,系统会给出默认构造方法
    如果你提供了构造方法,系统将不再提供

类的成员方法

成员方法其实就是我们前面讲过的方法
方法具体划分:
    根据返回值
    有明确返回值方法
    返回void类型的方法
根据形式参数
    无参方法
    带参方法

一个基本类的标准代码写法

类
    成员变量
    构造方法
    无参构造方法
    带参构造方法
成员方法
    getXxx()
    setXxx()
给成员变量赋值的方式
    无参构造方法+setXxx()
    带参构造方法

类的初始化过程

Student s = new Student();在内存中做了哪些事情?
    加载Student.class文件进内存
    在栈内存为s开辟空间
    在堆内存为学生对象开辟空间
    对学生对象的成员变量进行默认初始化
    对学生对象的成员变量进行显示初始化
    通过构造方法对学生对象的成员变量赋值
    学生对象初始化完毕,把对象地址赋值给s变量

static关键字

可以修饰成员变量和成员方法
static关键字特点
    随着类的加载而加载
    优先于对象存在
    被类的所有对象共享
    这也是我们判断是否使用静态关键字的条件
    可以通过类名调用
static关键字注意事项
    在静态方法中是没有this关键字的
    静态方法只能访问静态的成员变量和静态的成员方法

静态变量和成员变量的区别

所属不同
    静态变量属于类,所以也称为为类变量
    成员变量属于对象,所以也称为实例变量(对象变量)
内存中位置不同
    静态变量存储于方法区的静态区
    成员变量存储于堆内存
内存出现时间不同
    静态变量随着类的加载而加载,随着类的消失而消失
    成员变量随着对象的创建而存在,随着对象的消失而消失
调用不同
    静态变量可以通过类名调用,也可以通过对象调用
    成员变量只能通过对象名调用

main方法是静态的

public static void main(String[] args) {}
    public 被jvm调用,访问权限足够大。
    static 被jvm调用,不用创建对象,直接类名访问
    void被jvm调用,不需要给jvm返回值
    main 一个通用的名称,虽然不是关键字,但是被jvm识别
String[] args 以前用于接收键盘录入的

制作帮助文档

制作工具类
    ArrayTools
制作帮助文档(API)
    javadoc -d 目录 -author -version ArrayTool.java

如何使用帮助文档

找到文档,打开文档
点击显示,找到索引,出现输入框
你应该知道你找谁?举例:Scanner
看这个类的结构(需不需要导包)
    成员变量    字段
    构造方法    构造方法
    成员方法    方法
看这个类的说
看构造方法
看成员方法
然后使用

通过API学习Math类

Math类概述
    Math包含用于执行基本数学运算的方法
Math类特点
    没有构造方法,因为成员都是静态的

代码块

代码块
    在Java中,使用{}括起来的代码被称为代码块,根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)。

局部代码块 
    在方法中出现;限定变量生命周期,及早释放,提高内存利用率

构造代码块 
    在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行

静态代码块 在类中方法外出现,加了static修饰
    在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且值执行一次
发布了65 篇原创文章 · 获赞 57 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/LiuMiao1128/article/details/53228446
今日推荐