【七】Java面向对象
文章目录
- 1. 什么是对象
- 2. 类和对象
- 3. 属性和方法
- 4. 类和对象的关系
- 5. 创建类并实例化对象
- 6. 单一职责原则
- 7. 对象实例化
- 8. 构造方法
- 9. this关键字
1. 什么是对象
万物皆对象、客观存在的事物
对象:用来描述客观事物的一个实体,由一组属性和方法构成
2. 类和对象
- 类是模子,确定对象将会拥有的特征(属性)和行为(方法)
- 对象是类的表现
- 类是对象的类型
- 对象是特定类型的数据
类的特点:
- 类是对象的类型
- 具有相同属性和方法的一组对象的集合
3. 属性和方法
属性:对象具有的各种静态特征(“有什么”)
方法:对象具有的各种动态行为(“能做什么”)
4. 类和对象的关系
- 类是抽象的概念,仅仅是模板
- 对象是一个你能够看得到、摸得着的具体实体
- 类是对象的类型
- 对象是特定类型的数据
具体开发过程中,先定义类再实例化对象:
5. 创建类并实例化对象
// 定义Cat类
public class Cat{// 成员属性:昵称、年龄、体重、品种String name; // 默认nullint month; // 默认0double weight; // 默认0.0String species;// 成员方法:跑步、吃东西public void run(){System.out.println("小猫快跑")}public void eat(){System.out.println("小猫吃鱼")}
}public class CatTest{public static void main(String[] args){// 实例化对象Cat one = new Cat();one.run();one.eat();}
}
6. 单一职责原则
单一职责原则,也称为单一功能原则,英文Single Responsibility Principle 缩写SRP
,是面向对象设计中的一个重要原则。一个类,应该有且只有一个引起变化的原因。
在程序设计中,尽量把不同的职责,放在不同的职责中,即把 不同的变化原因,封装到不同的类中。
7. 对象实例化
实例化对象的过程可以分为两部分:
- 声明对象
Cat one
- 实例化对象
new Cat();
实例化后的对象才可以使用。
当声明Cat one
时是在栈空间开辟了一个区域,实例化的对象是存储在堆中的:
基本数据类型的值会直接保存在栈空间,引用类型的在栈中只会保存一个地址,这个地址会指向堆内存保存对象:
每次new对象会产生新的实例化对象:
Cat one = new Cat();
Cat two = new Cat();
多个对象可以指向同一块实例化空间,这样修改其中一个对象的属性也会修改另一个对象的属性。
Cat one = new Cat();
Cat two = one;
对象必须被实例化之后才能使用
对象间的引用传递,实际上传递的是堆内存空间的使用权
8. 构造方法
1、构造方法与类同名且没有返回值
2、构造方法的语句格式
3、只能在对象实例化的时候调用
4、当没有指定构造方法时,系统会自动添加无参的构造方法
5、当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法
6、一个类中可以有多个构造方法
public class Cat{String name;int month;double weight;String species;public Cat(){}public Cat(String name){}public Cat(String newName,int newMonth,double newWeight,String newSpecies){name = newName;month = newMonth;weight = newWeight;species= newSpecies;}
}
9. this关键字
this:当前对象的默认引用
this的使用:
- 调用成员变量,解决成员属性和局部变量同名冲突
- 调用成员方法
- 调用重载的构造方法
public class Cat{String name;int month;double weight;String species;public Cat(){}public Cat(String name){}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 run(){this.eat();System.out.println("run")}public void eat(){System.out.println("eat")}
}
【七】Java面向对象相关推荐
- java面向对象编程集合边框_Java学习系列(七)Java面向对象之集合框架详解(上)
Java集合 有时也将集合称为容器类,它的作用就是用来"装对象"的.这里要注意的是集合也可以是对象.下面先看一张图: HashSet:底层用一个数组存元素 --而且这个数组的长度永 ...
- java面向对象程序设计第三版_JAVA面向对象程序设计之创建型设计模式
[本文详细介绍了JAVA面向对象程序设计中的创建型设计模式,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 1.1 什么是设计模式 设计模式( Design pattern )是一套被反复使用.多数 ...
- Java面向对象部分小结
Java面向对象部分小结 第一天: 1. 了解面向对象和面向过程 2. 对象是什么,静态特性(属性),动态特征(方法) 3. 类和对象的关系 类是抽象的,对象是具体的 类是具有相同属性和行为(方法)的 ...
- java面向对象计算机与CD实验,Java面向对象上机实验指导书.doc
Java面向对象上机实验指导书 山东建筑大学实验报告 课 程 :Java面向对象程序设计语言 院 (部):商学院 专 业 :电子商务 班 级 : 学生姓名: 学 号: 指导教师:陈明志 完成时间:20 ...
- Java面向对象三大特征---继承
系列文章目录 Java面向对象三大特征-多态 Java面向对象三大特征-封装 文章目录 系列文章目录 前言 一.概念 二.举例说明 三.语句格式 三.为何要使用继承 四.super与this关键字 五 ...
- java面向对象程序设计题库_java面向对象程序设计习题集.doc
java面向对象程序设计习题集.doc 1JAVA 面向对象程序设计习题集 23目 录引 言 .6第一章 JAVA 基础 7一.填空题 7二.判断题 9三.选择题 9四.程序阅读题 26第二章 控制结 ...
- Java面向对象——最近学习总结
Java面向对象 文章目录 Java面向对象 前言 一.类与对象 1.什么是类与对象: 2.类与对象都有些什么?怎么创建?怎么用? 二.方法 1.方法的签名 2.方法的重载与重写 3.构造方法 4.n ...
- Java面向对象设计模式
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是 ...
- 八、Java面向对象编程(类、对象、方法、重载、可变参数、作用域、构造器、this本质)
文章目录 Java面向对象编程(类.对象.方法.重载.可变参数.作用域.构造器.this本质) 一.类与对象 1. 类与对象的引出 2. 使用现有技术解决 3. 现有技术解决的缺点分析 4. 类与对象 ...
- 孙卫琴:我为什么要写《Java面向对象编程》
孙卫琴:我为什么要写<Java面向对象编程> 特约作者:孙卫琴 策划 & 设计 & 制作:李大微 当<精通Struts>和<精通Hibernate> ...
最新文章
- cf 11A Increasing Sequence(水,)
- C语言常见的错误类型
- SQL:将查询结果插入到另一个表的三种情况
- 机器学习的练功方式(十)——岭回归
- UNIX网络编程——使用线程的TCP回射服务器程序
- Innodb内核线程并发机制
- linux系统进入救援模式
- .NET Hacks Tips
- 51nod1079中国剩余定理
- MySQL 字符集和校对
- 马蹄疾 | 聊聊你可能并没有完全掌握的 Flex 布局:从概念入手,丝丝入扣
- 计算机操作系统笔记——线程及其实现
- 如何通过DAU分析活跃用户?(案例:python绘制箱体图)
- 专家系统实例及其骨架系统
- 《明解C语言》示例代码和练习代码[第10章]
- 'wx' is not defined no-undef
- 用Python的networkx绘制精美网络图
- Linux7配置team聚合链之主备模式
- pear linux中文版下载,Pear OS 8 发布了
- 手机编程,调用GPS定位模块