第一章           面向对象:

1.1         什么是面向过程:

遇到某件事的时候,思考 “我该怎么做”然后一步一步实现的过程

1.2         什么是面向对象:

遇到某件事的时候,思考“我该让谁来做”,“谁”就是对象,他们怎么做是他们自己的事,最后一群对象结合起来做好一件事就行

1.3         面向对象举例

笔记本案例:

  1. 面向过程:

买一台组装电脑,先去网上找需要买那些零部件,然后找配置,然后在网上找零部件,价格和配置都合适,在购买完然后去电脑店去组装,然后在旁边监督,在装上系统回家

  1. 面向对象:

首先找一个对电脑硬件很了解的人,让他帮我们查看零部件和配置,然后找好零部件,购买然后让他现场监督,装上系统然后打电话给你,拿电脑回家

1.4         面向对象思维方式的好处

  1. 是一种更符合人们思考习惯的思维
  2. 面向过程更多的体现的是执行者,面向对象中更多的体现是指挥者
  3. 将复杂的问题简单化

第二章           类与对象

2.1对象在需求中的使

案例解析:

大象装进冰箱

需求:大象装进冰箱里

对象:大象、冰箱

步骤:

  1. 打开冰箱门
  2. 放进大象去
  3. 关闭冰箱门

打开、装、关闭都是冰箱的功能

大象描述:

Class 大象{

}

冰箱描述:

Class冰箱{

Void 打开{}

Void 存储(大象){ }

Void 关闭

}

当把具体的事物描述清楚之后,然后使用这些具体的事物,Java使用具体的事物,需要通过new 关键字来创建事物的具体实例

总结:

  1. 先按照名词提炼问题领域中的对象
  2. 对对象进行描述,明确对象中应该具备的属性和功能
  3. 通过new 的方式就可以创建该事物的具体对象
  4. 通过该对象调用它以后的方法

2.2对象在代码中的体现

分析:

事物的特点(属性):

颜色。

轮胎个数。

事物的(功能):

运行。

属性就是变量,就是方法

  1. 成员属性:

在代码中的体现就是成员变量

  1. 成员功能:

在代码中的体现就是成员方法

2.3对象的内存图解

小汽车案例

package com.oracle.demo06;

public class Car {

//成员变量

String color;

int number;

//成员方法

public void run(){

System.out.println("颜色为:"+color+","+number+"个轮胎");

}

}

//测试类

package com.oracle.demo06;

public class Test {

public static void main(String[] args) {

//创建对象

Car c=new Car();

//给成员变量赋值

c.color="紫色";

c.number=4;

//调用成员方法

c.run();

}

}

2.4类和对象的区别

  1. 类:

是对某一类事物的事物的抽象描述

  1. 对象:

用于表示实现中该类事物的个体

2.5局部变量和成员变量区别

区别一:定义的位置不同

定义在类中的变量称为成员变量

定义在方法中或者{}语句里面的变量称为局部变量

区别二:内存中的位置不同

成员变量存储在堆内存的对象中

局部变量存储在栈内存的方法中

区别三:生命周期不同

成员变量随着对象的出现而出现在堆中,随着对象方法的消失而从堆中消失

局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失

区别四:初始化不同

成员变量因为在堆内存中,所有默认的初始化值

局部变量没有默认的初始化值,必须手动给其赋值才可以使用

2.6基本类型和引用类型作为参数传递

基本数据类型参数传递:

package com.oracle.demo01;

public class Demo01 {

public static void main(String[] args) {

int a=1;

method01(a);

System.out.println(a);

}

//基本数据类型传递

public static void method01(int a){

a=2;

}

}

引用数据类型参数传递:

// package com.oracle.demo01;

public class Person {

String name;

int age;

public void speak(){

System.out.println("我叫"+name+",今年"+age+"岁了");

}

}

package com.oracle.demo01;

public class Demo01 {

public static void main(String[] args) {

//引用数据类型传递-- 对象

//创建对象

Person p=new Person();

//给变量赋值

p.name="欣欣";

p.age=24;

//调用method方法

methd02(p);

//调用p变量中的speak方法

p.speak();

}

//引用数据类型传递--对象

public static void methd02(Person p){

p.name="花花"  ;

p.age=18;

}

}

两个引用指向同一个对象,不管是哪一个引用改变了引用的所指向的对象的中的值,其他引用再次使用都是改变后的值。

Java面向对象类与对象整理的更多相关文章

  1. Java面向对象-类与对象

    Java面向对象-类与对象 类与对象的关系 我们通俗的举个例子,比如人类是一种类,张三这个人就是人类的具体的一个个体,也就是java中的对象:这就是一个类与对象的关系: 类的定义 下面看实例 类的创建 ...

  2. Java面向对象——类,对象和方法

    1.类的概念 在生活中,说到类,可以联想到类别,同类,会想到一类人,一类事物等等.而这一类人或事物都是具有相同特征或特点和行为的,我们根据不同的特征或特点和行为将他们归类或分类.同时,当我们认识一个新 ...

  3. java 面向对象 — 类和对象

    构造方法 1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名) 2.每个类可以有一个以上的构造器 3.构造器可以有0个.1个或1个以上的参数 4.构造器没有返回值 5.构造器 ...

  4. Java面向对象--类和对象

    面向对象是相对于面向过程而言的,是软件开发方法.面向对象把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统设计,更贴近事物的自然运行模式.本篇博客介绍Java面向对象的类和对象 目录: 面 ...

  5. Java面向对象~类和对象&方法,类方法

    面向对象 概念:     1.同一类事物的抽象描述,不是具体的    2.类和对象的关系:        类 是抽象的.        对象 是具体的.    3.对象的体征,称为"属性&q ...

  6. Java面向对象---类与对象的关系

    类是对某一类事物的描述,是抽象的.概念上的意义.对象是实际存在的该类事物的每一个个体,也被称为实例. 创建对象:包括声明对象和实例化对象 Person person;//声明 person = new ...

  7. Java面向对象 类与对象与方法的储存情况

    栈.堆.方法区 类(含方法)储存在方法区 main函数入栈 堆里面存储方法区中类与方法的地址 main函数调用方法,找堆里面方法的地址,再从方法区找到对应函数,函数入栈,用完出栈 总结: 1.类.方法 ...

  8. Java面向对象--类的对象之间的几种关系详解

    转载: https://www.cnblogs.com/supren/p/7853377.html

  9. Java面向对象——类的成员

    Java面向对象——类的成员 摘要:本文主要介绍了类的常见成员. 属性 属性称为成员变量,一般来讲不用赋值,因为有默认值,另外显式赋值没有意义会导致所有由此类创建对象都是此值. 默认值 Boolean ...

随机推荐

  1. MySQL启动错误---发生系统错误/系统找不到指定的文件。

    今天启动mysql时,突然报错发生系统错误,系统找不到指定的文件.当时有点懵,安装mysql 之后,一直就没有修改过,怎么会报错呢?上网搜索了一下,重新安装一下mysql服务就可以了,现在也不知道什么 ...

  2. BZOJ2151种树——模拟费用流+链表+堆

    题目描述 A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府决定沿圆形广场外圈种一圈树.园林部门得到指令后,初步规划出n个种树的位置,顺时针编号1到n.并且每个位置都有一个美观度Ai,如果在这 ...

  3. CSS初步学习

    1.选择器: 如果你要在HTML元素中设置CSS样式,你需要在元素中设置"id" 和 "class"选择器. id 选择器 id 选择器可以为标有特定 id 的 ...

  4. 继承&派生 属性查找

    # 在单继承背景下,无论是新式类还是经典类属性查找顺序都一样 # 先object->类->父类->... 实例: class Foo: def f1(self): print('Fo ...

  5. LA3490 Generator(KMP + 高斯消元)

    题意 一开始给你一个长为 \(S\) 的字符串. 从空串开始,不断在后面添加一个 \([A, A + n]\) 的一个字符. 第一次包含 \(S\) 的时候会停止添加.问期望的添加次数. 有 \(T\ ...

  6. Codeforces | CF1037D 【Valid BFS?】

    题目大意:给定一个\(n(1\leq n\leq 2\cdot10^5)\)个节点的树的\(n-1\)条边和这棵树的一个\(BFS\)序\(a_1,a_2,\dots,a_n\),判断这个\(BFS\ ...

  7. Speech语音播报

    System.Speech 这个命名空间,报可以阅读文字和播放音频. 环境  W10 VS2017 CMMT 1.添加程序集引用 System.Speech 2.实例化播音类,并且播放一个文本 Spe ...

  8. table用模板生成的问题

    在使用<template></template>存放HTML模板标记时,发现一个烦人的问题,表格不行. <template> <table> <t ...

  9. 51nod 1443 路径和树(最短路树)

    题目链接:路径和树 题意:给定无向带权连通图,求从u开始边权和最小的最短路树,输出最小边权和. 题解:构造出最短路树,把存留下来的边权全部加起来.(跑dijkstra的时候松弛加上$ < $变成 ...

  10. hdu 1527 (威佐夫博弈)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1527 Problem Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石 ...