java知识点04

wuchangjian2021-10-31 21:05:09编程学习

java类及类的成员:属性,方法,构造器,代码块,内部类
面向对象三大特征:封装性,继承性,多态性,(抽象性)
其他关键字:this,super,static,final,abstract,interface,package,import等

面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。
面向对象:强调具备了功能的对象,以类、对象为最小单位,考虑谁来做
面向对象的思想:
1.根据问题需要,选择问题所针对的现实世界的实体,
2.从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类。
3.把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。
4.将类实例化成计算机世界中的对象。

类是对一类事物的描述,是抽象的,概念上的定义
对象是实际存在的该类事物的每个个体,因而也被称为实例
面向对象程序设计的重点是类的设计
1.设计类,就是设计类的成员
属性 = 成员变量 = field = 域,字段
方法 = 成员方法 = 函数 = method
创建类的对象 = 类的实例化 = 实例化类

2.类和对象的使用
创建类,设计类的成员(属性和方法)
创建类的对象
通过“对象.属性”或“对象.方法”调用对象的结构

3.如果创建了一个类的多个对象,则每个对象都独立的拥有一套类的属性(非static的)
意味着:如果我们修改一个对象的属性a,则不影响另外一个对象属性a的值

属性(成员变量)和局部变量
1.相同点:
1.1定义变量的格式:数据类型 变量名 = 变量值
1.2先声明,后使用
1.3变量都有其对应的作用域
2.不同点:
2.1在类中声明的位置不同:
属性:直接定义在类的一对{}内
局部变量:声明在方法内,方法形参,代码块内,构造器形参,构造器内部的变量
2.2关于权限修饰符的不同
属性:可以在声明属性时,指明其权限,使用权限修饰符
常用的权限修饰符:private,public,缺省,protected
局部变量:不可以使用权限修饰符

方法:描述类应该具有的功能
方法的声明:权限修饰符 返回值类型 方法名(形参列表){方法体}
注:static,final,abstract来修饰的方法,以后再讲

若方法没有返回值,则方法声明时,使用void来表示,通常,没有返回值的方法中就不使用return,但是如果使用的话,只能“return”,表示结束此方法的意思

方法的使用中,可以调用当前类的属性或方法
特殊的:方法a中又调用了方法a:递归方法
方法中不可以定义方法

理解“万事万物皆对象”
1.在java语言范畴中,我们都将功能,结构等封装到类中,通过类的实例化,来调用具体的功能结构
    Scanner,String等,文件:File,网络资源:URL
2.涉及到Java语言与前端html,后端的数据库交互时,前后端的结构在Java层面交互时,都体现为类,对象。

内存解析的说明:引用类型的变量,只可能存储两类值:null或地址值(含变量的类型)

匿名对象的使用:
1.理解:我们创建的对象没有赋给一个变量名,new Scanner()
2.特征:匿名对象只能调用一次

方法的重载(overload)
定义:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可(参数相同顺序不同也可)
判断是否是重载:跟方法的权限修饰符,返回值类型,形参变量名,方法体都没有关系

可变个数形参的方法:
1.格式:数据类型 ... 变量名
当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,多个
例:public void main(String ... str)
2.可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载
3.可变个数形参在方法的形参中必须声明在末尾
例:public void main(int i,String ... str)
4.可变个数的形参在方法的形参中,最多只能声明一个可变形参
在形参中,int[] arr 被认为与int... arr 类型相等

关于变量的赋值:
如果变量是基本数据类型,此时赋值的是变量所保存的数据值
如果变量是引用数据类型,此时赋值的是所保存的数据的地址值

值传递机制:
形参:方法定义时,声明的小括号内的参数
实参:方法调用时,实际传递给形参的数据
如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值
如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值

int[] arr = new int[]{1,2,3}
syso(arr)//输出地址值
char[] arr1 = new char[]{'a','b','c'}
syso(arr)//输出a,b,c
 

相关文章

沧小海笔记之关于Aurora的几个功能实现的理解

沧小海笔记之关于Aurora的几个功能实现的理解

一个QUAD中的4个通道绑定到一共IP核中是否可行? 可行但不能实现预想目...

格式化时间

// 格式化时间 public formatDate(time: any, fmt?...

C++程序题目

仅供参考! 1.1到100求和 #include <stdio....

Android 反编译 修改版本,名字,资源文件,以及代码

Android 反编译 修改版本,名字,资源文件,以及代码

项目场景:修改版本号,修改App名字 对于源码丢失服务器切换,且没有开发...

线性代数1(2021.10.27)

1.置换矩阵[一个m*n(m<=n)的(0,1)矩阵P为置换矩阵的充要条件...

OpenStack的网络

网络模块Neutron 两种ip,五种拓扑,三种网络 二...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。