黑马程序员--前段阶段性总结1

本文深入讲解Java中的函数、数组及面向对象等基础知识,探讨函数的定义与调用、数组的操作与应用,以及面向对象的核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------------------- android培训java培训、期待与您交流! ----------------------

阶段性总结1

函数:就是定义在类中,具有特定功能的一小段程序。

格式:

修饰符 返回值类型 函数名(参数类型形式参数1,形式参数2,……)

{

执行语句;

return 返回值;

}

“{}”功能需要定义一个区间,独立的功能,独立的区间,。

函数的命名规则,单个单词单词小写,第二个单词开始每个单词手写字母大写。

函数的特点

定义函数可以讲功能代码进行封装

便于对该功能进行调用

函数只有被调用才会被执行

函数提高了代码的复用性

当函数中没有具体返回值时,返回值类型用void表示,该函数的最后一行return可以省略

注意:函数只能调用函数,不可以在函数中定义函数

定义函数时,函数的结果返回给调用者处理。

函数在定义时有

两个明确

明确定义的功能最后的结果是什么

明确在定义该工恩给你的过程,是否需要未知变量产于运算

注意:

返回值类型和参数类型没有直接关系。

函数的重载:

在同一个类中,允许同时出现一个以上的同名函数,只要他们的参数个数和参数类型不同

特点:与返回值类型无关,只看参数列表

好处:方便与阅读,优化了程序设计。

 

数组

同一种类型数据的集合。其实数组就是一个容器。

数组的好处 可以自动给数组中的元素从0开始编号,方便调用。

格式1:

元素类型[] 数组名 = new 元素种类[元素个数或者元素长度]

需要一个容器,但是不确定容器的具体数据

格式2:

元素种类[] 数组名 = new 元素类型[]{元素,元素,元素…….}

需要一个容器,储存已知的具体数据。

Int[] arr = newint[5];

Int[] arr = newint[]{1,2,3,4,5};

Int[] arr ={1,2,3,4,5};

创建一个新数组在内存中的分析

错误异常

ArrayIndwxOutofBoundsException 当访问到数组中不存的角标时,就会发生角标越界异常

NullPointerException 当引用型变量没有任何实体指向时,还在用其操作实体,就会发生该异常。

直接打印数组名[I@c17164 “[”带代表数组,I代表数组中寸的是int类型的元素,@右边的是地址哈希值,当直接应用数据类型时,可以测试对象什么实体

数组是对象实体,当数组被创建时,数组中的元素都有默认初始化值,int类型的初始化值为0,char类型的初始化值为\u0000

引用型数据类型,指向实体,不能写成 arr =0,当不需要指向时,arr = null,当对象被释放,就变成垃圾,由java垃圾回收机制进行处理。

堆中有变量, Null是个常量,关键字,null,跟true一样,固定不变。代表空没有任何指向

内存结构

栈内存,用于储存局部变量,当数据使用完后,会自动释放

堆内存

数组和对象,通过new关键字建立的实体都存放在堆内存中

每一个实体都都有内存地址

实体中的变量都有默认初始化值

实体不在被使用,会被视为垃圾,有垃圾回收机制处理

数据一多就用数组存储

数组的操作 对数组操作最基本的动作就是存和取

核心思想:就是对角标的操作。

使用arr.length获取数组的长度

使用角标获取最值(最大值,最小值),排序(选择排序,冒牌排序),折半查找(二分查找),折半查找的数组必须是有序的,当max小于min时就结束,返回min就是数据要插入的位置

创建数组时, int[] arr = new int[x] ,可使用x去参加循环得到所需要数组长度然后创建所需要长度数组。

数组的应用 获取一个整数的16进制,8进制,2进制表现形式。

何时想到使用数组

如果数据中出现了对应关系,并且对应关系的一方是有序的数字编号,并作为角标使用时,这时就必须要想到数组的使用,就可以将这些数据存储到数组中,根据运算的得到的角标直接去查数组中对应的元素,这种发放称为查表法,查表发其实就是使用数组方法操作,建立了一个映射关系。

Arr[pos++] = chs[temp];将变量直接放到数组角标中自增,便于阅读,简化代码。

 

 

二维数组

数组本身的元素还是数组,数组中的数组,二维数组。

定义格式

数据类型[][] 数组名 = new 数据类型[][]

 Int[][]arr = new int[3][2];创建一个二维数组,该数组中有三个一维数组,每一个一维数组中有2个元素。

Int[] arr[],  intarr[][]

Int[] y[],x;

二维数组中arr[][],arr[]储存的是一维数组对应的内存地址,arr[]就是数据类型。Arr[]初始化的值都为null。Arr[]开辟一块空间,创建arr[][]时有创建各自的内存空间储存各自的一维数组。

二维数组的什么时候使用,数据要分类储存时,就用二维数组储存,每一个一维数组的长度可以不等

 

 

面向对象

面向对象是相对面向过程而言的,面向对象和面向过程都是一种思想。

面向过程强调的实现功能的过程和行为,面向对象将功能封装到对象内部,强调的具有功能的对象。

面向对象是基于面向过程的

 

面向对象的特点

1,就是一种常见的思想,符合人的思考习惯

2,面向对象的出现,将复杂的事情简单化

3,让曾经在过程中的执行者,变成了对象中的指挥者。
关注问题的对象,不重视动作。

常做的是有对象用对象,没有对象创建对象维护对象之间的关系。

对象的三个特性

1,     封装 2,继承 3,多态

 

就是JAVA语言中对现实生活中的事物进行描述

对事物的描述通常只关注两方面

一个是属性,一个是行为

类与对象之间的关系

类:对事物的描述。

对象:该类事物的实例,在java中通过new来创建。

类是对一系类有相同属性或者行为的对象的抽象描述,对象是通过类来创建,有类描述的共有属性和功能的实体。

成员 这个事物中的组成部分,分为两种,一个是成员函数(行为),一个是成员变量(属性),定义类其实就是在定义类中的成员

类对象的一些特点

类描述事物,不需要独立运行,所以不需要主函数,只要在创建对象的类中使用主函数来运行对象即可。

一旦创建对象,这个对象肯定具备着该类中的内容

成员变量和局部变量的区别

1,     成员变量定义在类中,整个类都可以使用

局部变量定义在函数,语句,局部代码块中,只有在所属的区域有效。

2,     成员变量存在于堆内存的对象中。

局部变量存在于栈内存的方法中。

3,     成员变量随着对象的创建而存在,随着对象的消失而消失。

局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。

4,     成员变量都有默认初始化值

局部变量没有默认初始化值

注意:当类中定义了一个成员变量,在函数中又有一个同名的局部变量,当在这个函数中调用这个数据时,这时调用的是局部变量。类被调用时才运行

函数中的参数类型可以使普通类型,也可以使引用数据类型,可以传入一个Public static void show(Car c);

匿名对象

没有名字的对象

匿名对象的使用

1,     当对象对方法仅进行一次调用的时候

2,     匿名对象可以作为实际参数进行传递,当作为实际参数进行传递后,就有了应用数据类型变量指向了匿名对象

封装(Encapsulation)

封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

好处:将变化隔离

         便于使用

         提高重用性

         提高安全性

封装原则

         将不需要对外提供的内容隐藏起来

         将属性都隐藏,提供公共方法对其访问。

Private 私有 关键字
是一个权限修饰符,用于修饰成员,成员变量和成员函数

被私有化的成员只能在本类中有效

常用情况之一

将成员变量私有化,对外提供设置和获得方法对其进行访问,提高数据访问的安全性。

注意 私有仅仅是封装的一种体现而已,不是所有的封装都是私有。

---------------------- android培训java培训、期待与您交流! ----------------------详细请查看: http://edu.youkuaiyun.com/heima
黑马程序员训练营入学考试题 1、方法中的内部类能不能访问方法中的局部变量,为什么? 2、编写个类,在main方法中定义个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。 3、取出个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)... 4、有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入到个名称"stu.txt"文件中。要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。 5、编写个程序,获取10个1至20的随机数,要求随机数不能重复。 6、编写三各类Ticket、SealWindow、TicketSealCenter分别代表票信息、售票窗口、售票中心。售票中心分配定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来模拟此售票过程。 7、写方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 ? 8、编写个程序,它先将键盘上输入的个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的字符串不能转换成个十进制整数的情况,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环,直到被除数为0为止。其实,只要明白了打印出个十进制数的每位的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容易理解十进制数转二进制数的这种方式。 9、28人买可乐喝,3个可乐瓶盖可以换瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路) 10、有100个人围成个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值