一维数组和面向对象基础知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一维数组和面向对象基础知识相关的知识,希望对你有一定的参考价值。

一、java中内存分配
Java为提高程序执行效率,将内存分为五个部分:
1、栈内存:存储局部变量等。
(1)存储方式:先进后出,进栈方式:压站,出栈方式:弹栈。
(2)局部变量在内存中释放时间:栈内存存储局部变量时(局部变量在方法声明上或方法定义中),在方法或代码块执行完毕后,及时从内从中释放掉。
2、堆内存:new相关的内容,申请内存空间的内容在堆内存,给当前对象名称分配一个内存地址值。类中的成员变量、方法标记、成员方法等都存储在堆内存中。
(1)堆内存中的内容未赋值前,系统自动初始化,存放初始化值;赋值后,初始化值释放掉,存储赋值后的值。
(2)堆内存创建对象,当对象被输出后释放调用对象资源的的时间:垃圾回收器会在空闲状态时将对象释放掉。
(3)若多个引用指向同一堆内存空间,只会将第一个引用的地址值赋给其他引用,不会再给堆内存中开辟一个新的堆内存空间。
3、方法区:(1)class区(字节码文件、成员方法标记等);(2)static区;(3)String区(字符串常量区)。
4、本地方法区:和系统有关。
5、寄存器:和CPU有关。
二、数组
1、概念:可存储多个元素,且多个元素为同一数据类型的容器。
2、定义方式:(1)数据类型[] 数组名;(2)数据类型 数组名[];这两种方式只是在读法和写法上不一样,表达效果是一样的,建议用第一种。
3、初始化方式:(1)动态初始化:给定数组指定长度,系统默认初始化。例如:int[] a=new int[3];其中new创建一个数组对象,会在内存中存在。
(2)静态初始化:给定数组中元素的值,数组的长度由系统给定。例如:int[] a={1,2,3}。
原始格式:数据类型[] 数组名称=new 数据类型[] {元素1,元素2,...}
简化格式:数据类型[] 数组名称={元素1,元素2,...}
4、数组常用方法:
(1)遍历数组:
技术分享图片
(2)求最值:
技术分享图片
(3)逆序输出:
技术分享图片
(4)查找元素:
技术分享图片
(5)实现上述数组主要功能的主方法:
技术分享图片
5、数组中常见的两种异常
(1)ArrayIndexOutOfBoundsException:数组角标越界异常。
出现原因:访问了数组中不存在的索引值。
解决方法:观察数组索引值的取值范围,0~数组长度-1,修改为合理的索引值。
(2)NullPointerException:空指针异常(实际开发中最常见)。
出现原因:开发者使用了对象为空的对象。
解决方法:给所用对象进行非空判断,防止程序空指针异常。
三、面向对象
1、思想概述:面向对象是基于面向过程的一种编程语言。
2、思想特点:(1)更符合我们的思想行为习惯;(2)使复杂的事情简单化;(3)从执行者变成了指挥者,指挥对象做事。
3、面向对象开发:创建对象(前提:有类)→使用对象→指挥对象做事(方法)。
4、类和对象概述:
(1)现实世界中的事物→代码中的类;
(2)事物的属性→成员变量;
(3)事物的行为→成员方法(public)。
5、形参
(1)对于基本数据类型,形参的改变对实参无影响;
(2)对于引用数据类型,形参的改变直接影响实参。
6、匿名对象
(1)创建对象时,没有名字的对象,开发中常用。
(2)实际开发中,匿名对象只使用一次,不要使用多次,可能会造成内存溢出的现象。例如:
技术分享图片
7、成员变量
(1)成员变量:定义类的属性的变量。在类中方法外定义。调用方式:对象名.成员变量。
(2)赋值方式:a、通过set()公共访问方法赋值;b、通过有参构造进行赋值。
8、成员方法
(1)成员方法:定义类的行为的方法。调用方式:对象名.成员方法()。
(2)分类:A、按返回值划分:a、void形式,无返回值类型,无具体返回值;b、非void形式,有具体返回值,具体返回值类型。B、按参数划分:a、有参成员方法;b、无参成员方法。
9、private关键字
(1)private,私有的,体现一种封装思想。被private修饰后不能直接在其他类中赋值或访问,只能在本类中赋值或访问,若想在其他类中赋值或访问,需要通过公共成员方法。
(2)private用法:a、被private修饰,只能在本类中访问;b、可通过公共访问方法public间接去访问。
(3)被private修饰的成员变量赋值方法:a、set共有方法:this.变量名=变量名; b、有参构造方法:this.变量名=变量名;。两种方法中,第一个变量名是指成员变量名,第二个变量是指局部变量名。
例如:
技术分享图片
10、封装,标准类的写法,将成员变量全部私有化。
11、标准类
(1)标准类:将成员变量全部私有化。标准类中包含:a、成员变量;b、无参构造方法;c、有参构造方法;d、成员方法。
(2)测试类中赋值调用获取标准类方法的两种方式:a、无参构造方法+set()方法赋值+get()方法获取;b、有参构造方法直接赋值+get()方法获取。
例如:
技术分享图片
技术分享图片
12、static关键字
(1)static随着类的加载而加载;
(2)static优先于对象而存在;
(3)static共享数据,可被多个对象进行共享;
例如:
技术分享图片
上述代码运行结果:技术分享图片
(4)若数据被静态修饰,可以被类名直接调用。
A、被静态修饰的方法:类名.方法名();
B、被静态修饰的变量:类名.变量名();
例如:
技术分享图片
(5)一个类中可有静态方法、非静态方法、静态变量、非静态变量。静态方法只能访问静态变量或静态方法;非静态方法都可以访问。
例如:
技术分享图片
13、构造方法
(1)构造方法:方法名与类名相同。类的组成之一。
(2)分类:无参构造、有参构造。
(3)作用:给对象进行初始化。
(4)构造方法可重载。
(5)注意事项:若未写无参构造方法,系统会默认给出无参构造;若写了无参构造或有参构造,系统不会再提供无参构造。定义一个类时,永远给出无参构造。
(6)有参构造赋值方法:类名 对象名=new 类名(根据参数类型及个数进行赋值);
14、this关键字
this,代表当前类对象或者当前类对象的引用,解决了局部变量隐藏成员变量的问题,this在内存中指向的是堆内存中当前类对象的地址值。
四、制作简单的文档说明书
1、制作步骤
(1)创建一个测试类代码;
(2)创建一个工具类代码,并提供一些相关静态功能;
(3)给工具类中的每一个类每一种方法都加上文档注释;
(4)代码写完之后,选择一个盘:新建文件夹→创建两个文本文档并重命名(测试类名.java和工具类名.java)→以记事本方式打开所创建的两个文本文档→复制对应代码内容(不能复制包)到所建文本文档并保存。
(5)打开dos控制台:找到当前路径(所建文本文档的路径)并复制→在dos控制台输入存储文本文档的“盘名:”→输入“cd”进入,粘贴当前文本文档所在的路径→输入“javadoc -d 目录名 -author -version 工具类名.java”。
(6)上述操作完成之后,在所建文件夹中会生成一个新的和目录名相同的文件夹,打开文件夹,点击index,用浏览器打开,可看到制作成功的文档说明书的首页。
2、注意事项
(1)将工具类中的无参构造写成私有的。目的:不让外类创建对象,更好的直接使用类名调用。
(2)在工具类中写方法时尽量写静态的,方便调用。
(3)访问外类中的私有方法,通过类名调用静态方法的方式:外类名.方法名()。
(4)文档注释可以自动解析。

以上是关于一维数组和面向对象基础知识的主要内容,如果未能解决你的问题,请参考以下文章

二维数组 面向对象编程的概念 类对象以及引用 和成员方法

会一点java,有面向对象编程基础,选择入门unity有很大难度吗?应如何有效的入门?

JavaSE基础 数组 面向对象编程理解部分关键字的解释及用法

《C#零基础入门之百识百例》(五十一)面向对象概述 -- 一维多项式求值

面向对象(继承,多态)

杨玲 徐思 《面向对象程序设计(java)》第十一周学习总结