Day05_JAVA语言基础第五天
1、函数(掌握)
1、概念(掌握)
定义在类中,有特定功能的一小段程序
2、格式(掌握)
修饰符 返回类型 函数名(参数类型 形式参数,...){
函数体;
return 返回值;
}
解释:
A 修饰符: public static
B 返回值类型 :就是数据类型
C 函数名:见名知意,如果一个单词,首字母小写,如果多个单词组成,从第二个单词开始首字母大写
D 参数类型 :数据类型
E 形式参数 :接受实际参数的变量
F 实际参数 :就是实际参与运算的变量
G 函数体:实现功能的代码
H 返回值 程序的结果,如果没有明确返回值可以不写
I return 返回值 ,那里调用程序,return就把结果返回到哪里 比如 int num = max(1,2);return把结果返回给num
3、特点(掌握!!)
A 函数和函数是平级关系,且只能定义在类中,不能在函数中嵌套函数
B 函数只有被调用才会执行
4、注意(掌握)
无论函数的返回值是具体的数据类型还是void,任何函数都是以return语句结束的
5、函数的调用(理解)
A 有明确返回值函数的调用
单独调用//没有意义
输出调用//视频中老师用的最多的
赋值调用//开发中用的最多的
B 没有明确返回值函数的调用
单独调用
6、函数的重载-overload(掌握)
概念
在同一个类中,函数名相同,参数列表不同(参数类型和个数),与返回值类型无关
举例
classDemo{
publicstaticvoid print(int x,int y){}
publicstaticvoid print(int a,int b,int c){}
publicstaticvoid print(double a){}
publicstaticvoid print(int a){}
}
7、案例(掌握)
1、有明确返回值的案例
A求两个数据和
B 求两个数据的最大值
C 比较两个数是否相等
2、没有明确返回值的案例
A 打印矩形案例
B 打印99乘法表
2、数组(掌握)
1、概念(掌握)
数组是存储多个同一类型数据元素的容器(container)
2、好处(理解)
数组中的元素会被自动从0开始编号,方便我们获取
3、格式(掌握)
A int[] arr =new int[2]; //念法:int类型的数组arr
B int arr[] = new int[2]; //念法:int 类型的arr数组,不推荐这么写,他和第一种格式其实一样的
C int[] arr = new int[]{1,2,3,7}; //大括号内可以没有任何东西
D int[] arr = {3,4,65,4}; //大括号内可以没有任何东西
推荐使用A D ,C存在的意义:作为实际参数传递
获取数组的长度:变量名.length;
4、内存图(理解)
堆:所有new出来的东西都在堆里
1、每一个实体都有地址值
2、每一个实体内的内容都有默认值
整数: 0浮点数: 0.0字符: ’\u0000’ //char c = ‘\u0000’;布尔: false
5、数组操作(掌握)
1、数组遍历
int[] arr ={1,3,5,6,3,5,2};
for(int i=0; i<arr.length; i++){
int element = arr[i]; \\element:元素
System.out.println(element);
}
2、获取数组最值
- /*
方式一:临时变量为元素值
思路:
1,获取最值需要进行比较。每一次比较都会有一个较大的值。因为该值不确定。
通过一个变量进行临储。
2,让数组中的每一个元素都和这个变量中的值进行比较。
如果大于了变量中的值,就用该该变量记录较大值。
3,当所有的元素都比较完成,那么该变量中存储的就是数组中的最大值了。
*/
publicstaticint getMax(int[] arr)
{
int max = arr[0];
for(int x=1; x<arr.length; x++)
{
if(arr[x]>max)
max = arr[x];
}
return max;
}
/*
方式二:临时变量为角标
初始化为数组中任意一个角标。
*/
publicstaticint getMax_2(int[] arr)
{
int max =0;
for(int x=1; x<arr.length; x++)
{
if(arr[x]>arr[max])
max = x;
}
return arr[max];
}
3、数组查找:给定一个值,查找该值在数组中对应的索引
int[] arr ={1,3,5,6};
//查找5所定义应的角标
int index = getIndex(arr,5);
/**
查找元素所对应的角标
*/
publicstaticint getIndex(int[] arrays,int element){
for(int i=0; i<arrays.length; i++){
if(arrays[i]== element){
return i;
}
}
}
import java.util.Arrays;
publicclassArrayUtil{
publicstaticvoid main(String[] args){
int[] arr1 ={1,3,5};
int[] arr2 ={1,6,3};
copy(arr2, arr1);
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2));
}
/**
* 将arr1数组中的元素拷贝到arr2中,前提:两个数组的长度必须一致
* 需要的知识点:数组的遍历,数组中元素的获取,数组中元素的修改
* @param arr1
* @param arr2
*/
publicstaticvoid copy(int[] arr1,int[] arr2){
int length = arr1.length>arr2.length?arr2.length:arr1.length;
for(int i=0; i<length; i++){
arr2[i]= arr1[i];
}
}
}
6、常见问题(掌握)
A 数组越界异常:
ArrayIndexOutOfBoundsException
你访问了不存在的索引。
B 空指针异常:
NullPointerException
一个实例(对象)已经不存在了,你还去访问它的内容
7、二维数组(理解)
A 格式
第一种定义通过定义长度的方式定义了二维数组的长度,并且定义了一维数组的长度 int[][] arr = new int[6][3]
第二种定义通过长度仅定义了二维数组的长度,没有初始化一维数组int[] [] arr= new int[2][]
第三种定义通过直接给出元素定义了二维数组的长度和每一个一维数组的长度 int[][] arr = {{2,23},{33}}
B 案例
抽烟案例
/**
一条烟中10包烟
每包烟有20支烟
那么就把一条烟看成一个二维数组,里面的包是一维数组
*/
classSmokeDemo
{
publicstaticvoid main(String[] args)
{
int[][] tiaoyan =newint[10][20];
tiaoyan[9]=newint[2];
for(int i=0; i<tiaoyan.length; i++)
{
int[] baoyan = tiaoyan[i];
for(int j=0; j<baoyan.length; j++)
{
System.out.println("正在抽第"+(i+1)+"盒烟中的第"+(j+1)+"根烟");
}
}
}
}
3、今天必须掌握的内容。以及常见的笔试题和面试题(学完这个就可以放心学习后面的知识了)
Day05_JAVA语言基础第五天的更多相关文章
- Java语言基础(五)
Java语言基础(五) 一.浮点数 浮点数就是小数,其标准是IEEE 754,用指数和尾数表示 例如30000=3*10000=3*10^4 其中4是指数,3是尾数 Java中,浮点数有float ...
- [Java入门笔记] Java语言基础(五):数组
简介 数组可用用于存储存储多个数据,Java的数组要求所有的数组元素具有一种相同的数据类型.一旦数组初始化完成,数组在内存中的空间被固定下来,长度不可改变,即使把数组的元素清空,所占用的空间依然被保留 ...
- C语言基础第五次作业
题目7-2 统计一行文本的单词个数 1.实验代码 #include <stdio.h> int main() { char a; ,countword=; ){ scanf("% ...
- Go语言核心36讲(Go语言基础知识五)--学习笔记
05 | 程序实体的那些事儿(中) 在前文中,我解释过代码块的含义.Go 语言的代码块是一层套一层的,就像大圆套小圆. 一个代码块可以有若干个子代码块:但对于每个代码块,最多只会有一个直接包含它的代码 ...
- Java语言基础(五) Java原始数据类型的分类以及数据范围
Java原始数据类型的分类以及数据范围 1.基本数据类型分为:整型(byte, short, int, long),浮点型(float, double),字符型(char),布尔型(boolean) ...
- C语言基础-第五章
流程控制 1.顺序结构 顺序结构是指程序将按照书写的顺序一步步执行程序. 2.选择结构 2.1但分支结构语句 if(表达式){语句} 2.2双分支结构 if(表达式){}else if{} else{ ...
- C语言基础知识(五)——数组与指针的等价表示
void f(void) { int * p; int a[3] = {1,2,3}; p = a; printf("%d %d", a[0], p[0], *(a+1), *(p ...
- java语言基础(五)_Scanner类_Random类_ArrayList类
API API(Application Programming Interface),应用程序编程接口.Java API是一本程序员的字典 ,是JDK中提供给程序员使用的类的说明文档.这些类将底层的代 ...
- 第二十五节:Java语言基础-面向对象基础
面向对象 面向过程的代表主要是C语言,面向对象是相对面向过程而言,Java是面向对象的编程语言,面向过程是通过函数体现,面向过程主要是功能行为. 而对于面向对象而言,将功能封装到对象,所以面向对象是基 ...
随机推荐
- Dapper使用
公司的项目使用了Dapper做数据库连接处理,感觉不错,自己研究一下怎么用. 在网上找了找资料对Dapper都比较推崇.主要是两个方面,一个是连接速度很快,一个是代码开源且简单,只有一个SqlMapp ...
- VSS Plugin配置FAQ(翻译)[转]
前言(译者) 就个人的成长历程来说,刚参加工作用的是 CVS ,前前后后有接近三年的使用体验,从今年开始使用 SVN .总的来说我更喜欢 SVN ,用起来的确很方便,例如在本地源代码文件中加一个空格然 ...
- UVALive 5905 Pool Construction 最小割,s-t割性质 难度:3
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...
- 12.Object-C--浅谈OC的内存管理机制
昨天学习了OC的内存管理机制,今天想总结一下,所以接下来我要在这里bibi一下:OC的内存管理. 首先我要说的是,内存管理的作用范围. 内存管理的作用范围: 任何继承了NSObject的对象,对其他基 ...
- Java爬虫,信息抓取的实现
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23272657 今天公司有个需求,需要做一些指定网站查询后的数据的抓取,于是花了点 ...
- poj1274 二分匹配
今天复习二分匹配,A 了一道模板题. 二分匹配需要理解增广路的寻找.用dfs来更新最大匹配.注意一些点:赋初值:愚蠢地把==写成了= ; 然后match的记值;每个点都要重新走一遍. #include ...
- SQL Server 2005 镜像构建手册
转载:http://www.cnblogs.com/killkill/archive/2008/05/23/1205792.html 一. 镜像简介 1. 简介 数据库镜像是将数据库事务处理从一个SQ ...
- AS3事件流机制
事件流: 显示对象,深度 MouseEnabled,MouseChildren:显示对象,同层次(父容器为同一对象)遮挡问题
- php操作文件(读取写入文件)
一,PHP如何读取文件 PHP读取文件可以读取当前服务器或远程服务器中的文件.其步骤是:打开文件.读文件和关闭文件. 1,PHP如何打开文件 使用PHP函数fopen()打开一个文件,fopen()一 ...
- git 克隆项目 与 分支简单操作
git clone http://abcde.com/myproject/abc.git 克隆远程项目到本地githome文件夹git branch -a 查看所有分支 包括远程和本地 *号开头表示当 ...