java代码块基础入门.docx
《java代码块基础入门.docx》由会员分享,可在线阅读,更多相关《java代码块基础入门.docx(16页珍藏版)》请在冰豆网上搜索。
![java代码块基础入门.docx](https://file1.bdocx.com/fileroot1/2023-2/7/01514d03-e232-449e-901d-3a3aa7a286fb/01514d03-e232-449e-901d-3a3aa7a286fb1.gif)
java代码块基础入门
1对数组进行操作
/*
我想要对数组进行操作
在同一个文件夹下,类定义在两个文件中和定义在一个文件中其实一样的。
*/
classArrayDemo{
publicstaticvoidmain(String[]args){
//定义数组
int[]arr={28,55,37,46,19};
//需求:
遍历数组
/*
for(intx=0;xif(x==arr.length-1){
System.out.println(arr[x]);
}else{
System.out.print(arr[x]+",");
}
}
*/
//如果我有多个数组都要进行遍历,那么,代码的重复度就很高
//如何改进呢?
用方法改进
//调用
//静态方法
//printArray(arr);
//非静态方法
//ArrayDemoad=newArrayDemo();
//ad.printArray(arr);
//测试类的作用:
创建其他类的对象,调用其他类的功能。
//而我们现在的操作是跟数组相关的,所以,你应该把这些操作定义到数组操作类中
//定义一个数组的操作类
//有了数组操作类之后的调用
//ArrayToolat=newArrayTool();
//at.printArray(arr);
//方法改进为静态后,就可以直接通过类名调用
ArrayTool.printArray(arr);
}
/*
publicstaticvoidprintArray(int[]arr){
for(intx=0;xif(x==arr.length-1){
System.out.println(arr[x]);
}else{
System.out.print(arr[x]+",");
}
}
}
*/
//假设该方法不是静态的
/*
publicvoidprintArray(int[]arr){
for(intx=0;xif(x==arr.length-1){
System.out.println(arr[x]);
}else{
System.out.print(arr[x]+",");
}
}
}
*/
}
2构造方法私有
classArrayTool{
//把构造方法私有,外界就不能在创建对象了
privateArrayTool(){}
publicstaticvoidprintArray(int[]arr){
for(intx=0;xif(x==arr.length-1){
System.out.println(arr[x]);
}else{
System.out.print(arr[x]+",");
}
}
}
}
3制作说明书
/*
我想要对数组进行操作
如何制作一个说明书呢?
A:
写一个工具类
B:
对这个类加入文档注释
怎么加呢?
加些什么东西呢?
C:
用工具解析文档注释
javadoc工具
D:
格式
javadoc-d目录-author-versionArrayTool.java
目录:
就可以写一个文件夹的路径
制作帮助文档出错:
找不到可以文档化的公共或受保护的类:
告诉我们类的权限不够
*/
classArrayDemo{
publicstaticvoidmain(String[]args){
//定义数组
int[]arr={28,55,37,46,19};
//遍历
ArrayTool.printArray(arr);
//获取最值
intmax=ArrayTool.getMax(arr);
System.out.println("max:
"+max);
//获取55的索引值
intindex=ArrayTool.getIndex(arr,55);
System.out.println("index:
"+index);
}
}
4对数组进行操作的工具类
/**
*这是针对数组进行操作的工具类
*@author刘意
*@versionV.10
*/
publicclassArrayTool{
//把构造方法私有,外界就不能在创建对象了
/**
*这是私有构造
*/
privateArrayTool(){}
/**
*这是遍历数组的方法,遍历后的格式是:
[元素1,元素2,元素3,...]
*@paramarr这是要被遍历的数组
*/
publicstaticvoidprintArray(int[]arr){
System.out.print("[");
for(intx=0;xif(x==arr.length-1){
System.out.println(arr[x]+"]");
}else{
System.out.print(arr[x]+",");
}
}
}
/**
*这是获取数组中最大值的方法
*@paramarr这是要获取最大值的数组
*@return返回数组中的最大值
*/
publicstaticintgetMax(int[]arr){
intmax=arr[0];
for(intx=1;xif(arr[x]>max){
max=arr[x];
}
}
returnmax;
}
/**
*获取指定元素在数组中第一次出现的索引,如果元素不存在,就返回-1
*@paramarr被查找的数组
*@paramvalue要查找的元素
*@return返回元素在数组中的索引,如果不存在,返回-1
*/
publicstaticintgetIndex(int[]arr,intvalue){
intindex=-1;
for(intx=0;xif(arr[x]==value){
index=x;
break;
}
}
returnindex;
}
}
5如何使用帮助文档
1:
打开帮助文档
2:
点击显示,找到索引,看到输入框
3:
知道你要找谁?
以Scanner举例
4:
在输入框里面输入Scanner,然后回车
5:
看包
java.lang包下的类不需要导入,其他的全部需要导入。
要导入:
java.util.Scanner
6:
再简单的看看类的解释和说明,别忘了看看该类的版本
7:
看类的结构
成员变量字段摘要
构造方法构造方法摘要
成员方法方法摘要
8:
学习构造方法
A:
有构造方法就创建对象
B:
没有构造方法成员可能都是静态的
9:
看成员方法
A:
左边
是否静态:
如果静态,可以通过类名调用
返回值类型:
人家返回什么,你就用什么接收。
B:
右边
看方法名:
方法名称不要写错
参数列表:
人家要什么,你就给什么;人家要几个,你就给几个
/*
猜数字小游戏(数据在1-100之间)
分析:
A:
程序产生一个随机数。
(被猜的)
B:
键盘录入数据。
(你猜的)
C:
把你猜的和被猜的进行比较
a:
大了
b:
小了
c:
猜中了
D:
给出多次猜的机会,猜中就结束。
while()循环,猜中就break
*/
importjava.util.Scanner;
classGuessNumber{
publicstaticvoidmain(String[]args){
//程序产生一个随机数。
(被猜的)
intnumber=(int)(Math.random()*100)+1;
//System.out.println(number);
//给出多次猜的机会,猜中就结束。
while(true){
//键盘录入数据。
(你猜的)
Scannersc=newScanner(System.in);
System.out.println("请输入你要猜的数据(1-100):
");
intguessNumber=sc.nextInt();
//把你猜的和被猜的进行比较
if(guessNumber>number){
System.out.println("你猜的数据"+guessNumber+"大了");
}elseif(guessNumberSystem.out.println("你猜的数据"+guessNumber+"小了");
}else{
System.out.println("恭喜你,猜中了");
break;
}
}
}
}
6math类
/*
Math:
类包含用于执行基本数学运算的方法
由于Math类在java.lang包下,所以不需要导包。
特点:
没有构造方法,因为它的成员全部是静态的。
掌握一个方法:
获取随机数
publicstaticdoublerandom():
返回带正号的double值,该值大于等于0.0且小于1.0。
*/
classMathDemo{
publicstaticvoidmain(String[]args){
//获取一个随机数
//doubled=Math.random();
//System.out.println(d);
//需求:
我要获取一个1-100之间的随机数,肿么办?
for(intx=0;x<100;x++){
intnumber=(int)(Math.random()*100)+1;
System.out.println(number);
}
}
}
7代码块
/*
代码块:
在Java中,使用{}括起来的代码被称为代码块。
根据其位置和声明的不同,可以分为
局部代码块:
局部位置,用于限定变量的生命周期。
构造代码块:
在类中的成员位置,用{}括起来的代码。
每次调用构造方法执行前,都会先执行构造代码块。
作用:
可以把多个构造方法中的共同代码放到一起,对对象进行初始化。
静态代码块:
在类中的成员位置,用{}括起来的代码,只不过它用static修饰了。
作用:
一般是对类进行初始化。
面试题?
静态代码块,构造代码块,构造方法的执行顺序?
静态代码块--构造代码块--构造方法
静态代码块:
只执行一次
构造代码块:
每次调用构造方法都执行
*/
classCode{
static{
inta=1000;
System.out.println(a);
}
//构造代码块
{
intx=100;
System.out.println(x);
}
//构造方法
publicCode(){
System.out.println("code");
}
//构造方法
publicCode(inta){
System.out.println("code");
}
//构造代码块
{
inty=200;
System.out.println(y);
}
//静态代码块
static{
intb=2000;
System.out.println(b);
}
}
classCodeDemo{
publicstaticvoidmain(String[]args){
//局部代码块
{
intx=10;
System.out.println(x);
}
//找不到符号
//System.out.println(x);
{
inty=20;
System.out.println(y);
}
System.out.println("---------------");
Codec=newCode();
System.out.println("---------------");
Codec2=newCode();
System.out.println("---------------");
Codec3=newCode
(1);
}
}
8构造代码块
/*
写程序的执行结果。
林青霞都60了,我很伤心
我是main方法
Student静态代码块
Student构造代码块
Student构造方法
Student构造代码块
Student构造方法
*/
classStudent{
static{
System.out.println("Student静态代码块");
}
{
System.out.println("Student构造代码块");
}
publicStudent(){
System.out.println("Student构造方法");
}
}
classStudentDemo{
static{
System.out.println("林青霞都60了,我很伤心");
}
publicstaticvoidmain(String[]args){
System.out.println("我是main方法");
Students1=newStudent();
Students2=newStudent();
}
}