关键词:
一、Java面向对象学习的三条主线:
1.Java类及类的成员:属性、方法、构造器;代码块、内部类
2.面向对象的三大特征:封装性、继承性、多态性。(抽象性)
3.其他关键字:this、super、static、final、abstract、interface、package、import等。
二、“人把大象装进冰箱”
1.面向过程:强调的时功能行为,以函数为最小单位,考虑怎么做。
2.面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
三、面向对象的两个要素:
类:对一类事物的描述,是抽象的、概念上的定义
对象:是实际存在的该类事物的每个个体,因而也称为实例(interface)
二者关系:对象,是由类new出来的,派生出来的。
面向对象程序设计的重点是类的设计
设计类,就是设计类的成员。
属性 = 成员变量 = field = 域、字段
方法= 成员方法 = 函数 = method
创建类的对象 = 类的实例化 = 实例化类
四、面向对象思想落地的实现
1.创建类,设计类的成员
2.创建类的对象
3.通过“对象.属性”或“对象.方法”调用对象结构
属性(成员变量) vs 局部变量
1.相同点:
定义变量的格式:数据类型 变量名 = 变量值
先声明,后使用
变量都有其对应的作用域
2.不同点:
在类中声明的位置不同
属性:直接定义在类的一对{}内
局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
关于权限的修饰符不同
属性:可以在声明属性时,指明其权限,使用权限修饰符(private、public、缺省、protect等)
局部变量:不可以使用权限修饰符
默认初始化值的不同
属性:类的属性,根据其类型,都有默认初始化值。
整型(byte、short、int、long):0
浮点型(float、double):0.0
字符型(char):0(\u0000)
布尔型(boolean):false
引用数据类型(类、数组、接口):null
局部变量:没有默认初始化值,意味着我们在调用局部变量之前,一定要显示赋值。
特别的:形参在调用时,我们赋值即可。
在内存加载的位置不同
属性:加载到堆空间中(非static)
局部变量:加载到栈空间中
五、类中方法的声明和使用。
方法:描述类应该具有的功能
举个栗子
返回值类型:
如果方法有返回值,则必须在方法声明时,指定返回值的类型。同时方法中,需要使用return关键字来返回指定类型的变量或常量:“return 数据”
如果方法没有返回值,则声明方法时,使用void来表示。通常,没有返回值的方法中,就不使用return。但是如果使用的话,只能“return;” 表示结束此方法的意思
形参列表:方法可以声明0个,1个,或多个形参。
格式:数据类型1 形参1,数据类型2 形参2,...
六、理解万事万物皆对象
1.在Java语言范畴中,我们都将功能、结构等封装到类中,通过类的实例化,来调用具体的功能结构
Scanner,string等
文件:File
网络资源:URL
2.涉及到Java语言与前端Html、后端的数据库交互时,前后端的结构在Java层面交互时,都体现为类、对象
七、内存解析的说明
引用类型的变量,只能储存两类值:null 或 地址值(含变量的类型)
八、匿名对象的使用
1.理解:我们创建的对象,没有显式的赋给一个变量名。即为匿名对象
2.特征:匿名对象只能调用一次
九、方法的重载
1.定义:在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可。
2.如:Arrays类中重载的sort()/binarySearch()
方法名:---> 重载列表
3.可变个数形参的方法
1.jdk 5.0新增的内容
2.具体使用:
可变个数形参的格式:数据类型 ... 变量名
当调用可变个数形参的方法时,传入的参数可以是0个到多个。
当可变个数形参的方式与本类中的方法名相同,形参不同的方法之间构成重载
当可变个数形参的方式与本类中的方法名相同,形参类型也相同的数组不能构成重载,二者不共存
可变个数形参在方法的形参中,必须声明在末尾,最多只能声明一个可变形参。
十、方法参数的值传递机制
关于变量的赋值:
如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。
方法的形参的传递机制:值传递
形参:方法定义时,声明的小括号内的参数
实参:方法调用时,实际传递给形参的数据
值传递机制:
如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。
如果参数是引用数据类型,此时实参赋给形参的是实参真实存储的数据的地址值。
十一、递归方法
递归方法:一个方法体内调用它自身
方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无需循环控制。
public int getSum(int n) { //计算1-n之间所有自然数的乘积
if (n == 1) {
return 1;
} else {
return n * getSum(n - 1);
}
}
重新梳理it知识之java-01语法
0.标识符的命名规范包名:xxxyyyzzz类名、接口名:XxxYyyZzz(大驼峰)变量名、方法名:xxxYyyZzz常量名:XXX_YYY_ZZZ//**************强制类型转换***********classTest{publicstaticvoidmain(String[]args){doublea=12.3;intb=(int)a;//这里将a的类型(double)转换为in 查看详情
前端面试知识点梳理之五——javascript面向对象
一、相关问题 1.创建对象有几种方法 2.原型,构造函数,实例,原型链 3.instanceof的原理 4.new运算符二、问题解答1.创建对象有几种方法 查看详情
java知识点梳理——装箱和拆箱
1、前言:Java是典型的面向对象编程语言,但其中有8种基本数据类型不支持面向对象编程,基本数据类型不具备对象的特性,没有属性和方法;Java为此8种基本数据类型设计了对应的类(包装类),使之相互转换,间接实现基本... 查看详情
面向对象原型链继承知识梳理
单例模式:就是一个对象咯varperson={name:‘xuwen‘,age:17};varperson2={name:‘xiaoxu‘,age:25}工厂模式:就是一个函数,解决批量生产问题1functionfn(name,age){2varobj={};3obj.name=name,4obj.age=age,5obj.write=function(){6console.log(obj.nam 查看详情
.net知识梳理——3.面向对象
1.面向对象1.1 封装、继承、多态理解1.1.1 封装封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中... 查看详情
java面向对象泛型
这个第一篇知识梳理的博客,希望我可以坚持下去将知识进行总结。这是在极客学院里看到的视频,目录如下,蛮清晰的。然后我将视频中所说再记忆下。java面向对象之泛型:认识泛型 JavaSE1.5的新特性,泛型的本质是参数... 查看详情
javascript之面向对象的程序设计
...结合了IMOOC网上的《JS深入浅出》教程在此做一下知识的梳理和总结。一、什么是对象ECMA-262中把对象定义为:“无序属性的组合,每个属性包含基本值、对象或者函数。”这就相当于说对象是一组没有特定顺序 查看详情
面向对象知识点梳理
1.核心思想:万物皆对象(OOP面向对象)2.软件出现的目的(1)用计算机的语言描述现实世界(2)用计算机解决现实世界的问题3.面向对象设计和开发程序的好处(1)(人)和(计算机)交流更加流畅(2)提高设计和开发效率4.生活中定义"看得见... 查看详情
面向对象知识点梳理篇一(代码片段)
0.OOP-Python面向对象Python的面向对象面向对象编程基础公有私有继承组合,Mixin魔法函数魔法函数概述构造类魔法函数运算类魔法函数1.面向对象概述(ObjectOriented,OO)OOP思想接触到任意一个任务,首先想到的是任务这个世界的构... 查看详情
java基础知识之面向对象
类(对象)之间的关系之关联关系;比如学院-教授,学院-研究生,教授-研究生。继承关系是一般和特殊的关系;比如:运动员-球类运动员-篮球运动员。聚合关系是整体和部分的关系,包括聚集和组合2种类型,比如球队-队长... 查看详情
李洪强ios开发之oc语言基础知识
OC语言基础知识一、面向对象OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类。术语... 查看详情
js常见知识点3.面向对象之继承设计模式
一、面向对象的三大特征 建议回复: 封装:屏蔽内部细节、调用外部接口实现对应功能(函数调用) 继承:子类继承父类中的属性和方法 多态(js中不存在多态的概念)二、继承 建议回复: 继承:... 查看详情
javase之基础篇——面向对象
...且通过九个经典的问题供大家练习我们之前学的java基础知识,之后在介绍判断两个数组相同案例的时候给大家留了两个问题供大家思考。最后通过思维导图帮助大家回顾整篇文章介绍的相关知识,慢慢地培养读者java的整体架构... 查看详情
python之面向对象知识点汇总(小白必会)(代码片段)
目录Python基础之面向对象一、编程思想1、面向过程2、面向对象二、类与对象的创建1、类的语法结构2、定义与调用3、给对象添加独有属性4、对象独有属性修改三、动态、静态方法1、直接在类中定义的函数2、绑定给类的函数3、... 查看详情
java知识体系之基础知识
1.WhatisJava?Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了... 查看详情
重新认识java----面向对象之继承!
...用它,最后要知道如何使用它。这篇文章,我们重新认识一下java中的继承。继承是个什么东西我们先来看一下上一篇文章中的代码:你会发现,这两个类中都有name属性,都有marry方法。一个人,不可能只... 查看详情
typescript知识梳理
概述 TypeScript简称TS,具有类型系统,且是JavaScript的超集。它可以编译成普通的JavaScript代码。TypeScript支持任意浏览器,任意环境,任意系统并且是开源的。通过TS能够生成JS,TS是结构性语言,能够类似C#和Java那样,面向对象编... 查看详情
.net知识梳理——3.面向对象
1.面向对象1.1 封装、继承、多态理解1.1.1 封装封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中... 查看详情