Java面向对象的总结
面向对象的程序设计
1.面向对象
核心:以类的方式组织代码,以对象的方式封装数据
比喻:也就是说类是没有数据的,给了数据之后的类就是对象
| 封装 |
|---|
| 继承 |
| 多态 |
2.方法
a.一个方法只有一个返回值,只有一个return 语句。
b.比较静态方法和非静态方法
public class StaticF {//一个静态的方法,可以直接通过类名调用
public static int add(int a,int b){
return a+b;
}
}
public class NotStatic {//不是静态的方法必须通过实例化的对象调用
public int add(int a ,int b){
return a+b;
}
}
public static void main(String[] args) {
int a = 19;
int b = 21;
System.out.println(StaticF.add(a,b));//静态方法
System.out.println(new NotStatic().add(a,b));//非静态方法
}
c.值传递和引用传递
值传递
public static void main(String[] args) {
String name = "JHJ";
setName(name);
System.out.println(name);//结果仍然是JHJ
}
public static void setName(String name){
name = "LHH";
}
值传递:虽然把name放到了setName里面,但是传进去的是name所指向的内容,而不是name引用,通俗点说:就是李白拿了一个成绩考了60,他复印了一份成绩单,现在他把复印的那份成绩单成绩改成了100。但是李白的成绩还是60 。他是把值(成绩单)改了没用。得改成绩系统才行。
引用传递
public class ReferenceDeliver {
public static void ChangeName(Student student){
student.name = "LHH";
}
public static void main(String[] args) {
Student stu1 = new Student("JHJ",14);
ChangeName(stu1);
System.out.println(stu1.name);
}
}
class Student{
String name;
int age;
public Student(String name,int age){
this.name = name;
this.age = age;
}
}
引用传递:对象里面的属性修改,属于引用的这个对象。是会被修改的,因为对象是不可分割的,是属于对象的一部分
3.类和对象的关系
类里面只有属性和方法。
a.类的默认初始化。
类的默认初始化就是把类的所有属性都初始化出对应默认值
4.构造器
new 关键字的本质是调用构造器
| 一个类即使什么都不写都有一个默认的构造方法(不显示出来) |
|---|
| 但是一旦定义了有参数的构造器,就必须显式的写出来 |
| 构造器与类名相同,没有返回值 |
IDEA添加构造器的快捷键 :Ctrl+insert
public class Teacher {
String name;
int age;
public Teacher() { }//如果定义了有参数的,必须写出无参数的情况
public Teacher(String name, int age) {
this.name = name;
this.age = age;
}
public Teacher(int age) {
this.age = age;
}
public Teacher(String name) {
this.name = name;
}
}
5.对象的内存分析

栈:就是相当于一个目录,如果都是存在堆里面,那你想要找一个东西就太慢了,所以就把引用变量名指向堆中对象,相当于我们在一本书的目录找到对应章节的页数。、
堆里面有个方法去,就相当于每一章都有个思维导图解释这一节的细节信息。
| 栈:相当于一本书的目录,我们根据目录所指向的页数(地址),可以找到对应的知识点 |
|---|
| 堆:相当于一本书的知识点,比较庞大,全塞在栈里面不方便找,所以有个目录(栈) |
| 方法区:相当于每一章节后面的思维导图,他包括章节的大体信息,但是细节不深。 |
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. ...
随机推荐
- SOFARPC模式下的Consul注册中心
Consul大家不陌生,就是和Zookeeper.Nacos一伙的,能够作为微服务基础架构的注册中心,算是比较成熟的组件,和Springcloud集成顺滑, 考虑到Eureka已经停止更新,所以有必要 ...
- Mycat的简介及安装
Mycat简介: 1.1Mycat含义 简单的说,MyCAT就是: 一个彻底开源的,面向企业应用开发的“大数据库集群” 支持事务.ACID.可以替代Mysql的加强版数据库 一个可以视为“Mysql” ...
- Redis 的键命令、HyperLogLog 命令、脚本命令、连接命令、服务器命令
Redis 的键命令.HyperLogLog 命令.脚本命令.连接命令.服务器命令 Redis 的键命令 Redis 的键命令主要用于管理 Redis 的键,如删除键.查询键.修改键及设置某个键等. ...
- 远程调试docker构建的weblogic
环境信息 OSType: CentOS Linux 7 (Core) x86_64 3.10.0-957.21.3.el7.x86_64 DockerVersion: 19.03.8 Mirrors: ...
- 文本编辑器之kindeditor
摘要:最近在自己学习搭建网站的时候,突然要搭建网站的时候发现了一个好东西,那就是kindeditor这个文本编辑器,这个编辑器简单好用,而且很小,并且是开源的. 文本编辑器介绍 KindEditor ...
- 2017-12-08高级.net 面试小结
现在思维是企业级开发思维 应该往互联网思维转变,主要涉及,队列 ,消息,数据并发,数据安全,前端,vue,element UI 以下为速8酒店笔试题 1.有如下代码: string s1;string ...
- pikachu学习-暴力破解模块
安装好XAMPP,burpsuite,配置好pikachu我们就可以进行pikachu平台的漏洞学习 我这篇博客主要写暴力破解模块讲解,它分为4个小模块,分别是“基于表单的暴力破解”,“验证码绕过(o ...
- R与金钱游戏:美股与ARIMA模型预测
似乎突如其来,似乎合情合理,我们和巴菲特老先生一起亲见了一次,又一次,双一次,叒一次的美股熔断.身处历史的洪流,渺小的我们会不禁发问:那以后呢?还会有叕一次吗?于是就有了这篇记录:利用ARIMA模型来 ...
- MATLAB——文件读写(1)
1.文件打开关闭 (1)文件打开 fid=fopen(文件名,‘打开方式’)说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功.文件名用字符串形式,表示待打开的数据文件.常 ...
- idea打包或编译错误,错误为c盘idea路径某些文件被占用(非idea文件,项目生成的文件)
方法列表(2的效果可能更好) 1.将被占用的文件删除之后,重新打包或编译. 2.多编译几次项目. 3.发现真正可能的原因.(貌似被南航企业版360拦截了,导致targe或maven等文件被占用问题) ...