【Java】面向对象
重新搞一波 复习巩固
简单记录 慕课网 imooc Java 零基础入门-Java面向对象-面向对象 都是视频课件里的。
面向对象
什么是对象
什么是面向对象
什么是类
什么是属性
什么是方法
类和对象的关系
什么是对象
万物皆对象 客观存在的事物
对象:用来描述客观事物的一个实体,由一组属性和方法构成
对象是类的一个实例,有状态和行为。
我们周围真实的世界,就有很多很多对象,人啦狗啦等等,这些对象都有自己的状态和行为。
对比现实对象和软件对象,它们之间十分相似,
软件对象也有状态和行为,软件对象的状态就是属性,行为通过方法来体现,
软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成的。
属性 方法
状态 行为
类存在于code段,object存在于heap
什么是面向对象
人关注对象
人关注事物信息
类
类是模子,确定对象将会拥有的特征(属性)和行为(方法)
类是一个模板,它描述一类对象的行为和状态。
类的特点
- 类是对象的类型
- 具有相同属性和方法的一组对象的集合
什么是对象的属性和方法
属性:对象具有的各种静态特征
有什么
方法:对象具有的各种动态方法
能做什么
类和对象的关系
类是抽象的概念,仅仅是模板
对象是一个你能够看得到、摸得着得具体实体
类是对象的实例
对象是特定类型的数据
具体开发过程中,先定义类再实例化对象
单一职责原则
单一职责原则,也称为单一功能原则
英文是Single Responsibility Principle 缩写SRP
是面向对象设计中的一个重要原则
一个类,应该有且只有一个引起变化的原因
在程序设计中,尽量把不同职责,放在不同的职责中,即把不同的变化原因,封装到不同的类中。
对象实例化需要了解的
对象实例化
实例化对象的过程可以分为两部分:
声明对象 Cat one
实例化对象 new Cat();
Cat one = new Cat();
Stack Heap
每次new对象会产生新的实例化对象
Cat one = new Cat();
Cat two = new Cat();
多个对象可以指向同一块实例化空间
Cat one = new Cat();
Cat two = one;
对象必须被实例化之后才能使用
对象间的引用传递,实际上传递的是堆内存空间的使用权
构造方法
构造方法与类同名且没有返回值
构造方法的语句格式
只能在对象实例化的时候调用
当没有指定构造方法时,系统会自动添加无参的构造方法
当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法了
一个类中可以有多个构造方法
this关键字
this:当前对象的默认引用
this的使用
调用成员变量,解决成员属性和局部变量同名冲突
调用成员方法
调用重载的构造方法
Cat.java
package com.imooc.animal;
/**
* 宠物猫类
* @author imooc
*
*/
public class Cat {
//成员属性:昵称、年龄、体重、品种
String name;//昵称 String类型默认值null
int month;//年龄 int类型默认值0
double weight;//体重 double类型默认值0.0
String species;//品种
public Cat(){
System.out.println("我是无参构造方法");
}
public Cat(String name){
System.out.println("我是带参构造方法");
}
public Cat(String name,int month,double weight,String species){
this();
this.name=name;
this.month=month;
this.weight=weight;
this.species=species;
}
// public void Cat(){
// System.out.println("我只是一个普通的方法,恰好方法名叫Cat");
// }
//成员方法:跑动、吃东西
//跑动的方法
public void run(){
// Cat();
eat();
System.out.println("小猫快跑");
}
public void run(String name){
System.out.println(name+"快跑");
}
//吃东西的方法
public void eat(){
System.out.println("小猫吃鱼");
}
}
CatTest.java
package com.imooc.animal;
//单一职责原则
public class CatTest {
public static void main(String[] args) {
// 对象实例化
Cat one = new Cat("花花",2,1000,"英国短毛猫");
// 测试
// one.name = "花花";
// one.month = 2;
// one.weight = 1000;
// one.species = "英国短毛猫";
System.out.println("昵称:" + one.name);
System.out.println("年龄:" + one.month);
System.out.println("体重:" + one.weight);
System.out.println("品种:" + one.species);
one.run();
// one.Cat();
}
}
【Java】面向对象的更多相关文章
- JAVA面向对象
JAVA面向对象 对象 我们生活中能看到能摸到的一切事物都是对象.在程序中模拟出生活中的所有东西万物皆对象 只要是对象--属性和行为(方法) 属性 对象有什么 例如:学生有姓名.学 ...
- 理解JAVA - 面向对象(object) - 属性,方法
理解JAVA - 面向对象(object) - 属性,方法 多态的体现: 向上造型,父类接收子类对象:向上造型: 从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都 ...
- Java面向对象㈠ -- 封装
Java的面向对象有三大特征:封装.继承.多态.这里主要对封装进行讲解. 封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数. Java的封装主要通过访问权限控制符:priva ...
- 谈谈Java面向对象的三大特性
Java面向对象的三大特性就是指封装.继承.多态了. 一.封装: 概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数 ...
- Java面向对象:接口
Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...
- 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...
- java基础1.0::Java面向对象、面向对象封装、抽象类、接口、static、final
一.前言 一直以来都是拿来主义,向大神学习,从网上找资料,现在就把自己在工作中和学习中的所理解的知识点写出来,好记星不如烂笔头,一来可以作为笔记自己温习,二来也可以给走在求学之路的同学们一点参考意见, ...
- 20145212《Java程序设计》实验报告二 《 Java面向对象程序设计》
20145212 实验二< Java面向对象程序设计> 实验内容 单元测试 三种代码 伪代码 百分制转五分制: 如果成绩小于60,转成"不及格" 如果成绩在60与70之 ...
- 20145213《Java程序设计》实验二Java面向对象程序设计实验报告
20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...
- 20145206《Java程序设计》实验二Java面向对象程序设计实验报告
20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
随机推荐
- Oracle数据导入Mysql中
一.Navicat Premium中的数据迁移工具 为了生产库释放部分资源,需要将API模块迁移到mysql中,及需要导数据. 尝试了oracle to mysql工具,迁移时报错不说,这么大的数据量 ...
- wpa_supplicant 检测错误密码
选好了 wifi ssid,填了密码,生成新配置文件,重启了wpa_supplicant,怎么知道输入的密码对不对,如果不对有什么体现? wpa_supplicant 前台运行时,打印信息中会有: W ...
- 保姆级教程,带你认识大数据,从0到1搭建 Hadoop 集群
大数据简介,概念部分 概念部分,建议之前没有任何大数据相关知识的朋友阅读 大数据概论 什么是大数据 大数据(Big Data)是指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需 ...
- 工具-Redis-django存储session(99.6.4)
@ 目录 1.说明 安装 修改设置 2.测试 关于作者 1.说明 之前django的session默认是存在的数据库里面的,我们也可以把session存储在redis里面 安装 pip install ...
- OpenSNS后台文件上传漏铜分析
前言 这几天正在想找个文件上传漏洞分析一波,以加深对文件上传漏洞的理解,正好看到FreeBuf的一片文章记对OpenSNS的一次代码审计,由于其只对漏洞进行复现,故在此进行代码层面的分析. 漏洞分析 ...
- P4735 最大异或和 01 Trie
题目描述 给定一个非负整数序列 \(\{a\}\),初始长度为\(n\). 有 \(m\) 个操作,有以下两种操作类型: \(A\ x\):添加操作,表示在序列末尾添加一个数 \(x\),序列的长度 ...
- 微博爬虫,python微博用户主页小姐姐图片内容采集爬虫
python爬虫,微博爬虫,需要知晓微博用户id号,能够通过抓取微博用户主页内容来获取用户发表的内容,时间,点赞数,转发数等数据,当然以上都是本渣渣结合网上代码抄抄改改获取的! 要抓取的微博地址:ht ...
- Tensorflow Windows安装
操作系统: Windows 7 安装步骤 Step 1: 安装Tensorflow支持的Python版本,配置环境变量 目前,Tensorflow支持: Python 3.5.x 64-bit fro ...
- JavaWeb基础总结:Servlet专题
最近工作中有部分整改老接口的任务,大部分与Spring的拦截器,Tomcat相关,改到一些底层的代码发现,对基础J2EE的知识有些遗忘,需要频繁查阅,索性从头系统的整理一下Servlet和Filter ...
- iOS崩溃治理--开篇
去年我开始负责iOS崩溃治理的工作,从原来的万分之五崩溃率,一直到现在的万分之一左右的崩溃率,期间踩了很多坑,因此想和大家分享一下,希望能对大家有所帮助,也欢迎大家私信交流. 如果你打算开始治理崩溃的 ...