文章目录

  • 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面向对象相关推荐

  1. java面向对象编程集合边框_Java学习系列(七)Java面向对象之集合框架详解(上)

    Java集合 有时也将集合称为容器类,它的作用就是用来"装对象"的.这里要注意的是集合也可以是对象.下面先看一张图: HashSet:底层用一个数组存元素 --而且这个数组的长度永 ...

  2. java面向对象程序设计第三版_JAVA面向对象程序设计之创建型设计模式

    [本文详细介绍了JAVA面向对象程序设计中的创建型设计模式,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 1.1 什么是设计模式 设计模式( Design pattern )是一套被反复使用.多数 ...

  3. Java面向对象部分小结

    Java面向对象部分小结 第一天: 1. 了解面向对象和面向过程 2. 对象是什么,静态特性(属性),动态特征(方法) 3. 类和对象的关系 类是抽象的,对象是具体的 类是具有相同属性和行为(方法)的 ...

  4. java面向对象计算机与CD实验,Java面向对象上机实验指导书.doc

    Java面向对象上机实验指导书 山东建筑大学实验报告 课 程 :Java面向对象程序设计语言 院 (部):商学院 专 业 :电子商务 班 级 : 学生姓名: 学 号: 指导教师:陈明志 完成时间:20 ...

  5. Java面向对象三大特征---继承

    系列文章目录 Java面向对象三大特征-多态 Java面向对象三大特征-封装 文章目录 系列文章目录 前言 一.概念 二.举例说明 三.语句格式 三.为何要使用继承 四.super与this关键字 五 ...

  6. java面向对象程序设计题库_java面向对象程序设计习题集.doc

    java面向对象程序设计习题集.doc 1JAVA 面向对象程序设计习题集 23目 录引 言 .6第一章 JAVA 基础 7一.填空题 7二.判断题 9三.选择题 9四.程序阅读题 26第二章 控制结 ...

  7. Java面向对象——最近学习总结

    Java面向对象 文章目录 Java面向对象 前言 一.类与对象 1.什么是类与对象: 2.类与对象都有些什么?怎么创建?怎么用? 二.方法 1.方法的签名 2.方法的重载与重写 3.构造方法 4.n ...

  8. Java面向对象设计模式

    设计模式(Design Patterns)   --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是 ...

  9. 八、Java面向对象编程(类、对象、方法、重载、可变参数、作用域、构造器、this本质)

    文章目录 Java面向对象编程(类.对象.方法.重载.可变参数.作用域.构造器.this本质) 一.类与对象 1. 类与对象的引出 2. 使用现有技术解决 3. 现有技术解决的缺点分析 4. 类与对象 ...

  10. 孙卫琴:我为什么要写《Java面向对象编程》

    孙卫琴:我为什么要写<Java面向对象编程> 特约作者:孙卫琴 策划 & 设计 & 制作:李大微 当<精通Struts>和<精通Hibernate> ...

最新文章

  1. cf 11A Increasing Sequence(水,)
  2. C语言常见的错误类型
  3. SQL:将查询结果插入到另一个表的三种情况
  4. 机器学习的练功方式(十)——岭回归
  5. UNIX网络编程——使用线程的TCP回射服务器程序
  6. Innodb内核线程并发机制
  7. linux系统进入救援模式
  8. .NET Hacks Tips
  9. 51nod1079中国剩余定理
  10. MySQL 字符集和校对
  11. 马蹄疾 | 聊聊你可能并没有完全掌握的 Flex 布局:从概念入手,丝丝入扣
  12. 计算机操作系统笔记——线程及其实现
  13. 如何通过DAU分析活跃用户?(案例:python绘制箱体图)
  14. 专家系统实例及其骨架系统
  15. 《明解C语言》示例代码和练习代码[第10章]
  16. 'wx' is not defined no-undef
  17. 用Python的networkx绘制精美网络图
  18. Linux7配置team聚合链之主备模式
  19. pear linux中文版下载,Pear OS 8 发布了
  20. 手机编程,调用GPS定位模块

热门文章

  1. Apache beam其他学习记录
  2. 一步一步写算法(之 算法总结)【转】
  3. python/selenium/chrome
  4. jQuery DOM 节点操作
  5. 某一个物种能够在 1 分钟之内干掉资深程序员...网友称:恐怖如斯!
  6. 彭文华:详解数字化转型的破局之道(附直播视频)
  7. 企业数字化转型过程中,如何真正把数据用起来、用的对、用的好?
  8. 程序猿永远就是程序员的命么?
  9. 《飞鸽传书2007绿色版下载》总结报告
  10. 【飞秋】ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码