1. 类和对象

1.1 什么是对象

1.2 什么是面向对象

   

          

1.3 什么是类

1.4 什么是对象的属性

1.5 什么是对象的行为

行为就是对象能够干什么

1.6 类和对象的关系

1.7 类的定义

1.7.1 类的定义步骤

           

代码示例:

                 

1.8 对象的使用

代码示例:

1.8.1 案例

public class Student {
String name;
int age;
public void study(){
System.out.println("好好学习");
}
public void doHomework(){
System.out.println("多多练习");
}
} public class StudentTest {
public static void main(String[] args) {
//创建第一个对象并使用
Student s1 = new Student();
System.out.println(s1.name);//null
System.out.println(s1.age);//0 s1.name="林青霞";
s1.age=10;
System.out.println(s1.name);//林青霞
System.out.println(s1.age);//10 s1.study();//好好学习
s1.doHomework();//多多练习
}
}

2. 对象内存图

2.1 对象内存图(单个对象)

栈内存:存放静态变量、方法、常量、局部变量

堆内存:存放new出来的对象、数组、成员变量

这是一个测试类

先从main方法开始,main方法被加载到栈内存

创建对象,它会被加载到栈内存中

new Student(),在堆内存中new一片空间放入成员遍历,并赋值默认值。
方法没有调用,所以不会加载。

s指向堆内存中new出来的地址,这样就可以使用堆内存中的数据了。

输出s,因为s指向001,所以输出001.

s指向001,name指向001中的name,所以输出null

s指向001,age指向001中的age,所以输出0

最后拼接输出,null,0

s.name = “张曼玉”; 通过s(001)找到name,给他赋值"张曼玉"

和上面一样age的值修改为28

再次输出的时候就成了,张曼玉,28

s.study(); 首先找都Studen对象中的study方法,将它加载到栈内存中,而s(001)就是它的调用者。

接下来进入study方法中,输出"好好学习"

当这个方法执行完毕就会从栈内存中消失。

接下来的doHoework();方法和study()方法一样。

2.2 对象内存图(多个对象)

因为new 是在堆内存中开辟一块空间,所以,s1和s2是不一样的,互不影响。

2.3 对象内存图(多个对象指向相同)

把s1(001)赋值给s2,这样s1和s2就都指向了堆内存中的001

把第一个对象的地址赋值给第二个对象

因为s2指向的堆内存地址也是001,所以把name修改为"张曼玉"

同上age的值变为28

因为s1和s2的堆内存地址值是一样的,所以他们俩输出的结果是一样的。

s1输出的是张曼玉,28

s2输出的也是张曼玉,28

3. 成员变量和局部变量

3.1 什么是成员变量和局部变量

3.2 成员变量和局部变量的区别

4. 封装

4.1 private关键字

4.2 private关键字的使用

4.3 this关键字

this修饰的变量是成员变量;this代表所在类的对象引用,方法被哪个对象调用,this就代表哪个对象

 

4.4 this内存原理

s1调取setName方法,setName()进入栈内存

形参name是传递过去的"林青霞"

调用者是s1(001)

setName()方法中的this就是s1(001)

this就是调用者s1(001),name是001地址中的name,name是参数"林青霞"赋给001中的name

s2在堆内存空间中再开辟一块空间,和s1互不干扰。

总结:调用者是谁this就代表了谁

4.5 封装

5. 构造方法

5.1 构造方法概述

5.2 构造方法的注意事项

5.3 标准类制作

Java基础00-面向对象基础13的更多相关文章

  1. [Java 教程 00] 计算机基础

    前言 我想,来到这的朋友肯定是想学习JAVA或者想要进入IT这个行业的.考虑到大家的基础可能不一样,有些人可能还是用着新买的电脑,为了让大家在后续的学习中更加顺畅.在学习一门全新的计算机语言之前,我需 ...

  2. 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结

    086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...

  3. Java学习 · 初识 面向对象基础一

    面向对象基础 1.1面向过程与面向对象的区别 面向过程和面向对象二者都是思考问题的方式,再简单的事物时,可以线性思考时使用面向过程,但当事物较为复杂时,只能使用面向对象设计.但二者并不是对立的,在解决 ...

  4. MYSQL、PHP基础、面向对象基础简单复习总结

    一.MYSQL         1.配置MySql                 第一步安装服务器(apache).                 第二部安装MySql界面程序         2 ...

  5. 周末班:Python基础之面向对象基础

    面向对象基础 面向对象和面向过程 编程思想是什么,就是用代码解决现实生活中问题的思路. 面向过程 核心点在过程二字,过程指的是解决问题的步骤,说白了就是先做什么再干什么.这种解决问题的思路就好比是工厂 ...

  6. [java学习笔记]java语言核心----面向对象基础

    1.面向对象概述 面向对象是java语言的核心.是对应于面向过程而言的. 面向过程:强调的是过程,即动作.在java中动作就是函数.C语言就是面向过程的. 如:把大象装进冰箱需要几步? 答:需要三步: ...

  7. Java学习 · 初识 面向对象基础二

    Package 为什么需要使用package a)   解决类重名的问题 b)   便于管理类 怎么使用package a)   类的第一句非注释性语句 b)   命名:域名倒着写,再加上模块名 注意 ...

  8. python3 速查参考- python基础 8 -> 面向对象基础:类的创建与基础使用,类属性,property、类方法、静态方法、常用知识点概念(封装、继承等等见下一章)

    基础概念 1.速查笔记: #-- 最普通的类 class C1(C2, C3): spam = 42 # 数据属性 def __init__(self, name): # 函数属性:构造函数 self ...

  9. 学习PYTHON之路, DAY 7 - PYTHON 基础 7 (面向对象基础)

    面向对象三大特性 一.封装 封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容. 所以,在使用面向对象的封装特性时,需要: 将内容封装到某处 从某处调用被封装的内容 第一步:将内容 ...

  10. Python类基础知识(面向对象基础)

    #首先 我们需要了解 面向过程是什么 面向对象是什么 我们为什么需要使用面向对象 面向过程:根据业务逻辑从上到下写垒代码 面向对象:根据代码对函数进行分类和封装 区别:解决问题的逻辑不同,但是都能解决 ...

随机推荐

  1. java中的Class.forName的作用

    Class.forName有什么作用 Class.forName(xxx.xx.xx) 返回的是一个类 首先你要明白在java里面任何class都要装载在虚拟机上才能运行.这句话就是装载类用的(和ne ...

  2. Jmeter读取python生成的参数

    一.环境准备 1.准备python文件,测试脚本执行结果:下图中的打印的信息即JMeter预期要获取的参数信息 2.准备bat文件 3.添加 OS Process Sampler读取批处理文件 二. ...

  3. java后端知识点梳理——web安全

    跨域 当浏览器执行脚本时会检查是否同源,只有同源的脚本才会执行,如果不同源即为跨域. 这里的同源指访问的协议.域名.端口都相同. 同源策略是由 Netscape 提出的著名安全策略,是浏览器最核心.基 ...

  4. noip模拟8[星际旅行·砍树·超级树·求和]

    也不能算考得好,虽然这次A了一道题,但主要是那道题太简单了,没啥成就感,而且有好多人都A掉了 除了那一道,其他的加起来一共拿了25pts,这我能咋办,无奈的去改题 整场考试的状态并不是很好啊,不知道是 ...

  5. NUC980 运行 RT-Thread 时使用 GPIO

    如何使用 GPIO? NuMaker-RTU-NUC980 板子引出的 IO 有: 分别有一个 I2C1.GPIO.SPI0.UART4,RT-Thread 中 NuMaker-RTU-NUC980 ...

  6. maven安装与基础配置

    下载,安装 下载地址 https://maven.apache.org/ 解压安装包到安装路径 tar -zxvf apache-maven-3.8.1-bin.tar.gz -C /opt/ 配置P ...

  7. js笔记16

    动画 (1)css样式提供了运动  过渡的属性transition 从一种情况到另一种情况叫过渡 transition:attr   time   linear   delay attr 是变化的属性 ...

  8. Unity_DOTween

    DOTween官网 DG.Tweening.Ease枚举详解 2019.12.12补充: 问题:当前dotween动画没播放完,便再次播放有冲突的操作,如连续多次播放.正播.倒播,导致显示不正常或报错 ...

  9. 附加数据库出现 无法打开物理文件 操作系统错误 5:拒绝访问 SQL

    刚刚从公司的电脑上考到自己刚刚装好系统的笔记本上面,出现了问题: 无法打开物理文件 操作系统错误 5:拒绝访问 . 网上找了下解决方法: 找到需要导入的  mdf和ldf  修改它的权限为完全控制,不 ...

  10. 在windows的情况下面右键添加vim

    1, 首先打开注册表,然后打开下面路径: HKEY_CLASSES_ROOT\*\Shell 2, 右键新建项(也就是右键的文字):  用vim编辑 3, 在"用vim编辑"下面再 ...