面向对象的程序设计

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面向对象的总结的更多相关文章

  1. JAVA面向对象

    JAVA面向对象 对象   我们生活中能看到能摸到的一切事物都是对象.在程序中模拟出生活中的所有东西万物皆对象   只要是对象--属性和行为(方法)   属性   对象有什么   例如:学生有姓名.学 ...

  2. 理解JAVA - 面向对象(object) - 属性,方法

    理解JAVA - 面向对象(object) - 属性,方法 多态的体现:    向上造型,父类接收子类对象:向上造型:    从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都 ...

  3. Java面向对象㈠ -- 封装

    Java的面向对象有三大特征:封装.继承.多态.这里主要对封装进行讲解. 封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数. Java的封装主要通过访问权限控制符:priva ...

  4. 谈谈Java面向对象的三大特性

    Java面向对象的三大特性就是指封装.继承.多态了. 一.封装: 概念:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. (举例:笔记本电脑就是一个封装体,Java语言中最小的封装体就是函数 ...

  5. Java面向对象:接口

    Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...

  6. 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  7. java基础1.0::Java面向对象、面向对象封装、抽象类、接口、static、final

    一.前言 一直以来都是拿来主义,向大神学习,从网上找资料,现在就把自己在工作中和学习中的所理解的知识点写出来,好记星不如烂笔头,一来可以作为笔记自己温习,二来也可以给走在求学之路的同学们一点参考意见, ...

  8. 20145212《Java程序设计》实验报告二 《 Java面向对象程序设计》

    20145212 实验二< Java面向对象程序设计> 实验内容 单元测试 三种代码 伪代码 百分制转五分制: 如果成绩小于60,转成"不及格" 如果成绩在60与70之 ...

  9. 20145213《Java程序设计》实验二Java面向对象程序设计实验报告

    20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...

  10. 20145206《Java程序设计》实验二Java面向对象程序设计实验报告

    20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...

随机推荐

  1. MySQL笔记(4)-- 索引优化

    索引失效情况: 最佳左前缀法则:如果索引了多列,要遵循最左前缀法则,指的是查询从索引的最左前列开始并且不跳过索引中的列:[覆盖索引有a,b,c,条件中使用了b或bc都导致该索引失效:如果条件使用了ac ...

  2. hdu1429 胜利大逃亡(续)???天天逃亡???

    题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1429/ 题目就是迷宫问题的变种,给出一张地图,上面分布着钥匙和门,一种要是只能开一种特定的门,给出起点和终点,问 ...

  3. Django HttpResponse

    HttpResponse 概述:给浏览器返回数据 HttpRequest对象是由django创建的,HttpResponse对象由程序员创建 用法 1:不调用模板,直接返回数据. 例: def get ...

  4. 在dev分支上修改了文件,但是并没有执行git add. 和git commit命令,然后切换到master分支,仍然能看到dev分支的改动现象

    当我们创建一个新的分支dev,并且在新分支上修改了原文件,在我们没有提交到仓库的前提下,将分支再切换到master分支上,执行git status ,可以看到dev操作的状态: (1)因为未add的内 ...

  5. Django-rest-framework源码分析(三)

    APIView(二) 在APIView执行dispatch()方法的时候,它不仅做了分发函数的功能,还进行了一系列的校验. Django的全局校验一般写在中间件中,但是rest_framework于D ...

  6. WeChat-SmallProgram:组件 scroll-view 横向和纵向 案例

    scroll-view为滚动视图,分为水平滚动和垂直滚动.注意滚动视图垂直滚动时一定要设置高度否则的话scroll-view不会生效. 滚动视图常用的地方一般都是Item项比较多的界面,比如我的模块 ...

  7. java面试基础篇-List

    一.ArrayList: 底层为数组实现,线程不安全,查询,修改快,增加删除慢, 数据结构:数组以0为下标依次连续进行存储 数组查询元素:根据下标查询就行 数组增加元素:如果需要给index为10的位 ...

  8. mabatis入门五 高级结果映射

    一.创建测试的表和数据 1.创建表 1CREATE TABLE items ( 2 id INT NOT NULL AUTO_INCREMENT, 3 itemsname VARCHAR(32) NO ...

  9. 【Springboot】实例讲解Springboot整合OpenTracing分布式链路追踪系统(Jaeger和Zipkin)

    1 分布式追踪系统 随着大量公司把单体应用重构为微服务,对于运维人员的责任就更加重大了.架构更复杂.应用更多,要从中快速诊断出问题.找到性能瓶颈,并不是一件容易的事.因此,也随着诞生了一系列面向Dev ...

  10. JS烟花案例优化版

    不明白为什么是烟花优化版本的先参考作者的烟花基础版本 烟花优化版本主要实在优化爆炸的范围和运动上做了优化,爆炸范围我们采用已圆的爆炸方式,以鼠标点击的位置为圆形爆炸的烟花效果 <!DOCTYPE ...