javaSE_07Java中类和对象-封装特性
一、谈谈什么是面向对象的思维
理解面向对象,重点是要思考以下的问题 面向过程 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中类和对象-封装特性的更多相关文章
- javaSE_07Java中类和对象-封装特性--练习
1.编写封装一个学生类,有姓名,有年龄,有性别,有英语成绩,数学成绩,语文成绩,一个学生类,我们关注姓名,年龄,学历等信息,要求年龄必须在19-40岁之间,默认为19,学历必须是大专,本科,研究生这几 ...
- javaSE_07Java中类和对象-封装特性-思维导图
思维导图看不清楚时: 1)可以将图片另存为图片,保存在本地来查看 : 2)右击在新标签中打开放大查看 (IE不支持,搜狗,360可以):
- JS中类或对象的定义说明
本篇文章主要是对JS中类或对象的定义进行说明介绍.我们知道,JS是面向对象的.谈到面向对象,就不可避免的要涉及类的概念.一般像c#,java这些强类型语言都有固定的定义类的语法.而JS的不同之处在于它 ...
- JS 对象封装的常用方式
JS是一门面向对象语言,其对象是用prototype属性来模拟的,下面,来看看如何封装JS对象. 常规封装 function Person (name,age,sex){ this.name = na ...
- Javascript的对象封装和继承有哪些方法?优劣分别是什么?
1.对象封装方法 (1)原始模式生成对象 直接将我们的成员写入对象中,用函数返回. 缺点:很难看出是一个模式出来的实例. function Stu(name, score) { ...
- jfinal对象封装Record原理
/*DbPro.class*/ public transient Record findFirst(String sql, Object paras[]{ List result = find(sql ...
- Ajax发送FormData对象封装的表单数据
前端页面: <!doctype html> <html lang="en"> <head> <meta charset="UTF ...
- Swift --- 面向对象中类和对象的属性
Swift中类和对象的属性分为三种:储存属性,计算属性和类属性. import Foundation class Person { // 储存属性必须赋初值 var score1: Int = 20 ...
- 利用js对象的特性,去掉数组中的重复项
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
随机推荐
- Java多线程学习笔记(一)——Thread类中方法介绍
currentThread():返回代码正在被哪个线程调用. public class CurrentThreadWay { public static void main(String[] args ...
- Centos下装eclipse测试Hadoop
(一),安装eclipse 1,下载eclipse,点这里 2,将文件上传到Centos7,可以用WinSCP 3,解压并安装eclipse [root@Master opt]# tar zxvf ' ...
- CF #312 E. A Simple Task 线段树
题目链接:http://codeforces.com/problemset/problem/558/E 给一个字符串,每次对一个区间内的子串进行升序或者降序的排列,问最后字符串什么样子. 对于字符串排 ...
- CF #93 div1 B. Password KMP/Z
题目链接:http://codeforces.com/problemset/problem/126/B 大意:给一个字符串,问最长的既是前缀又是后缀又是中缀(这里指在内部出现)的子串. 我自己的做法是 ...
- bootstrap快速入门笔记(四)-less用法指南, mixin和变量
一,less变量,less文件 1.bootstrap.less 这是主要的 Less 文件.该文件中导入了一些其他的 less 文件.该文件中没有任何代码. 2.forms.less 这个 Less ...
- WebStorm设置左侧菜单栏背景和字体设置
WebStorm左侧菜单栏 webstorm是一款前端IDE利器,个人感觉黑色的背景比较炫酷,刚开始从网上下载的主题只能修改编辑窗口的背景色,经过查询资料终于把左边菜单栏的背景色也修改了. 第一步:点 ...
- 玩玩kafka1 单机安装
今天主要来一遍kafka单机版的安装,比较简单易上手,关于kafka的介绍我就不贴了,大家可以自行搜索 1.首先将tgz包传到centos目录下(这里使用xftp工具) ok后查看一下tgz包是否已经 ...
- Lua调试:getinfo详解
getinfo是调试Lua程序时一个很重要很常见的函数,主要用于获取函数调用的基本信息.这个函数的难点在于各个参数的含义.下面一一介绍. 一.函数简介: 1.原型:getinfo(level, arg ...
- Python简要学习笔记
1.搭建学习环境 推荐ActivePython,虽然此乃为商业产品,却是一个有自由软件版权保证的完善的Python开发环境,关键是文档以及相关模块的预设都非常齐备. ActivePython下载地址: ...
- 通过批处理 安装 mongodb和设置身份验证
1.首先需要 mongodb.msi安装包 2.mongodb的配置文件mongod.cfg 内容如下: systemLog: destination: file path: "D:/mon ...