一、谈谈什么是面向对象的思维

理解面向对象,重点是要思考以下的问题

面向过程 vs 面向对象

Ø 谈谈什么是面向过程的编程思想?

Ø 为什么有面向过程还要有面向对象?

Ø 谈谈什么是面向对象的编程思想?

Ø 面向对象和面向过程有什么样的联系?

生活角度:面向过程 vs 面向对象

你---》做饭(买菜,洗菜,切菜,炒菜,吃,洗碗)

女朋友----》吃饭

女朋友---》面向对象---》你--做饭

你----》面向过程(明确具体的每个步骤)

总结:

生活角度:

面向对象:(先确定好一类事物,然后再找具体的对象)用人,关注点在于怎么协调每个人来完成工作

面向过程:要明确人去干活的细节,关注点在于做每件事的过程

每件事都是自己来干--执行者

每件事都是找专业的人来干--管理者(资源的调配者)

代码角度:

二、Java中的面向对象(类和对象)

Java是一门纯面向对象的语言,那么它是怎么来实现这些面向对象的思维的,那下面我们就要来学习它的语法。

掌握面向对象的基本语法:Java最基本的单位是类

在Java中有两个重要的概念,类和对象。

先抽象(老师)后具体(具体的老师)

类:

生活中:多个个体---》提取公共性----》归类

对象:

对象:个体

:创建一个老师类

语法:

public class 类名{

}

一个老师,我们需要关注什么特性?比如姓名,年龄等等

除了这些基本的特性或叫属性之外,老师还应该有些行为,比较上课的行为。

那么这种行为,在java中就叫方法。

 

总结:

基本信息--属性

行为--方法

语法:

Public class 类名{

数据类型 变量名;

访问修饰符 返回值类型 方法名(参数列表){

方法体;

}

}

:创建一个老师对象

类已经有了,但是类是抽象的概念,真正可以干活的是具体的对象,怎么具体化?

对象

创建对象的语法是什么?

类名 对象名 = new 类名();//这跟创建数组类似

对象名.属性

对象名.方法

练习:

1.编写一个老师类,关注其姓名,年龄,擅长领域等信息,同时关注其上课的能力,在测试类中创建该类的对象,通过对象给属性赋值及调用方法

2.编写一个手机类,关注其品牌,价格,屏幕大小等信息,同时关注其打电话的功能,在测试类中创建该类的对象,通过对象给属性赋值及调用方法

增加功能:

来一个方法展示其老师的整体信息

来一个方法展示其手机的整体信息

JDK为我们提供了很多的类,方便我们程序的开发

比如文件的操作,上传,下载 ---io

比如网络的编程,做对聊小程序 --net

等等

有时候,我们还会自己来创建新的类

比如,婚介系统,存储会员的信息 --创建一个新的类来存储这个信息

会员:

属性:身高,年龄等等

方法:唱歌,做饭。。。。

类:概念,抽象的

对象:具体的

三、封装及this

封装有两层含义,对功能的封装,比如就是我们的方法,方法就代表一个功能的实现;

另一层含义,是对数据的封装,比如手机的价格等等

问题:

上述案例都有共同的问题,老师的年龄或手机的价格都可以给其负数,但应该是不合理的,怎么解决这样的问题?

Java为我们提供了一种解决方案(面向对象的三大特征之一:封装

注意:真正项目开发时,我们解决此类问题的方案并不是这样,但是为了更好让大家理解封装的特性,我们暂且采用这个方案来解决此类问题。

步骤:

1.属性私有化

2.对属性提供get和set方法

新问题:

名字相同的问题

解决方案引入this关键字

this访问本类的构造方法:

小结:

l this访问本类的成员属性

l this访问本类的成员方法

l this访问本类的构造方法

补充:

开发的时候,我们的类的所有属性一般都会私有化,然后再提供方法给外界调用

四、构造方法

什么是构造方法,当我们要创建一个对象的时候就会使用到构造方法,可以实现对象的创建及对象信息的初始化工作

构造方法的使用及细节

1.构造方法的语法格式

访问修饰符 类名(参数列表){

方法体;

}

2.默认构造方法

3.带参的构造方法

4.默认特性,系统默认会给我们提供一个无参的构造方法

练习:采用带参的构造方法来实现对象的创建,并验证系统提供无参构造方法的机制。

五、考点:成员变量和局部变量的区别

成员变量和局部变量的区别?笔试考点

成员变量:

定义在类中,跟成员方法同级别

局部变量:

方法的参数,或者定义在方法内的变量

(1),位置不同,导致作用域不同

(2),生命周期不同

(3),内存的位置不同(后面讲对象内存图时再讲)

(4),初始值不同,局部变量默认不给初始化,需要你自己去初始化,才能使用

(5),奇葩考点,成员变量和局部变量同名的情况,考优先级问题

javaSE_07Java中类和对象-封装特性的更多相关文章

  1. javaSE_07Java中类和对象-封装特性--练习

    1.编写封装一个学生类,有姓名,有年龄,有性别,有英语成绩,数学成绩,语文成绩,一个学生类,我们关注姓名,年龄,学历等信息,要求年龄必须在19-40岁之间,默认为19,学历必须是大专,本科,研究生这几 ...

  2. javaSE_07Java中类和对象-封装特性-思维导图

    思维导图看不清楚时: 1)可以将图片另存为图片,保存在本地来查看 : 2)右击在新标签中打开放大查看 (IE不支持,搜狗,360可以):

  3. JS中类或对象的定义说明

    本篇文章主要是对JS中类或对象的定义进行说明介绍.我们知道,JS是面向对象的.谈到面向对象,就不可避免的要涉及类的概念.一般像c#,java这些强类型语言都有固定的定义类的语法.而JS的不同之处在于它 ...

  4. JS 对象封装的常用方式

    JS是一门面向对象语言,其对象是用prototype属性来模拟的,下面,来看看如何封装JS对象. 常规封装 function Person (name,age,sex){ this.name = na ...

  5. Javascript的对象封装和继承有哪些方法?优劣分别是什么?

    1.对象封装方法 (1)原始模式生成对象 直接将我们的成员写入对象中,用函数返回. 缺点:很难看出是一个模式出来的实例. function Stu(name, score) {             ...

  6. jfinal对象封装Record原理

    /*DbPro.class*/ public transient Record findFirst(String sql, Object paras[]{ List result = find(sql ...

  7. Ajax发送FormData对象封装的表单数据

    前端页面: <!doctype html> <html lang="en"> <head> <meta charset="UTF ...

  8. Swift --- 面向对象中类和对象的属性

    Swift中类和对象的属性分为三种:储存属性,计算属性和类属性. import Foundation class Person { // 储存属性必须赋初值 var score1: Int = 20 ...

  9. 利用js对象的特性,去掉数组中的重复项

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

随机推荐

  1. VUE进阶(路由等)

    初级教程:http://www.cnblogs.com/dmcl/p/6137469.html VUE进阶 自定义指令 http://cn.vuejs.org/v2/guide/custom-dire ...

  2. java中json和字符串互转及日期转换 练习

    一:以下是用到的jar名称: commons-beanutils-1.6.jar commons-collections-3.2.1.jar commons-lang-2.6.jar commons- ...

  3. IO流中的Stream相关对象

    流无处不在,只要是关于到文件的输入.输出.更新等,关于IO流,项目中还是经常用到的,写log日志免不了要与其打交道,现在需要用到,就顺道好好回顾一下进行整理,首先是几个需要用到的类的说明,其实说简单点 ...

  4. 【从无到有】教你使用animation做简单的动画效果

    今天写写怎么用animation属性做一些简单的动画效果 在CSS选择器中,使用animition动画属性,调用声明好的关键帧 首先声明一个动画(关键帧): @keyframes name{ from ...

  5. sass入门学习篇(一)

    先简单的介绍一下sass,如果你了解less,sass就没什么太大问题 Sass 是对 CSS 的扩展,让 CSS 语言更强大.优雅. 它允许你使用变量.嵌套规则. mixins.导入等众多功能, 并 ...

  6. 规范模式-------From ABP Document

    介绍 规范模式是一种特定的软件设计模式,通过使用布尔逻辑 (维基百科)将业务规则链接在一起,可以重新组合业务规则. 在实际中,它主要用于 为实体或其他业务对象定义可重用的过滤器. 例 在本节中,我们将 ...

  7. @JsonIgnoreProperties注解不起作用的问题解决

    最近做的一个东西要调第三方服务接口,要参照接口文档开发,但是第三方服务的接口字段名全部都是大写,本来以为这种应该没有什么问题.但是实际开发中发现大写的字段名字去调后台接口的时候报: org.codeh ...

  8. 【WPF】学习笔记(一)——做一个简单的电子签名板

    参加实习(WPF)已经有两个多周的时间了,踩了一些坑,也算积累了一些小东西,准备慢慢拿出来分享一下.(●'◡'●) 这次呢就讲讲一个简单的电子签名板的实现. 先上张图(PS:字写得比较丑,不要太在意哈 ...

  9. python3 selenium 鼠标悬停操作

    使用场景: 测试过程中有些元素隐藏在某些元素下面,需要鼠标悬停,才会看到 使用方法: # 定位元素hover_element = driver.find_element_by_css_selector ...

  10. OC中NSFileManager

    NSFileManager介绍 NSFileManager是用来管理文件系统的 它可以用来进行常见的文件\文件夹操作(拷贝.剪切.创建等) NSFileManager使用了单例模式singleton ...