day05
day05
方法传参
C++注释:C++有值调用和引用调用。引用参数标有&符号。例如,可以轻松地实现void tripleValue(double&x)方法或void swap(Employee&x,Employee&y)方法实现修改它们的引用参数的目的。
Java程序设计语言总是采用按值调用。也就是说,方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何参数变量的内容。Java程序设计语言对对象采用的不是引用调用,实际上,对象引用是按值传递的。
方法的重载
Java允许重载任何方法,而不只是构造器方法。因此,要完整地描述一个方法,需要指出方法名以及参数类型。这叫做方法的签名(signature)。返回类型不是方法签名的一部分。也就是说,不能有两个名字相同、参数类型也相同却返回不同类型值的方法。
构造器调用另一个构造器
关键字this引用方法的隐式参数。然而,这个关键字还有另外一个含义。
如果构造器的第一个语句形如this(...),这个构造器将调用同一个类的另一个构造器。
C++注释:在Java中,this引用等价于C++的this指针。但是,在C++中,一个构造器不能调用另一个构造器。在C++中,必须将抽取出的公共初始化代码编写成一个独立的方法。
对象析构与finalize方法
有些面向对象的程序设计语言,特别是C++,有显式的析构器方法,其中放置一些当对象不再使用时需要执行的清理代码。在析构器中,最常见的操作是回收分配给对象的存储空间。由于Java有自动的垃圾回收器,不需要人工回收内存,所以Java不支持析构器。
某些对象使用了内存之外的其他资源,例如,文件或使用了系统资源的另一个对象的句柄。在这种情况下,当资源不再需要时,将其回收和再利用将显得十分重要。
可以为任何一个类添加finalize方法。finalize方法将在垃圾回收器清除对象之前调用。
return的作用
return一旦执行,方法立即结束,
return可以用在无返回值的方法中,作用是:立即跳出并结束当前方法的执行
x 1package day_06;23import java.util.Arrays;4import java.util.Random;5import java.util.Scanner;67public class day06_demo08 {8 // 模拟双色球:用户投注一组号码9// 6个红球号码的范围是1-33之间,且不能重复;1个蓝球号码的范围在:1-16之间。10 public static void main(String[] args) {11 int[] userNumbers = userSelectNumbers();12 int[] luckNumbers = createLuckNumbers();13 judge(userNumbers,luckNumbers);14 }15// - 6个红球+1个蓝球 ,奖金1000万16//- 6个红球+0个蓝球,奖金500万17//- 5个红球+1个蓝球,奖金3000块18//- 5个红球+0个蓝球,或者4个红球+1个蓝球,奖金200块19//- 4个红球+0个蓝球,或者3个红球+1个蓝球,奖金10块20//- 小于3个红球+1个蓝球,奖金5块21//- 如果前面的都不成立,就中奖,算你为福利事业做贡献了。22//用户投注一组号码(前6个是红球,最后一个是篮球),并返回用户投注的号码2324 public static int[] userSelectNumbers() {25 int[] arr = new int[7];26 int red = 6;//信标27 while(red != 0){28 Scanner scanner = new Scanner(System.in);29 System.out.println("请输入一组要投注的红球号码(1-33之间,不能重复)😊;30 label:for (int i = 0; i < arr.length - 1; i++){//循环遍历填充数组31 int number = scanner.nextInt();32 if (number > 33 || number < 1){//如果超范围,则重置数组和信标33 System.out.println("红球号码的范围是1-33之间,请重新输入:");34 red = 6;35 Arrays.fill(arr,0);36 break;37 }else {38 for (int j = 0;j<= i;j++){//如果有重复数据,则重置数组和信标39 if (arr[j] == number){40 System.out.println("不能有重复号码!请重新输入:");41 red = 6;42 Arrays.fill(arr,0);43 break label;44 }45 }46 arr[i] = number;47 red--;48 }49 }50 }5152 System.out.println("请输入要投注的蓝球号码:");53 int blue = 1;54 while (blue!=0){55 Scanner scanner = new Scanner(System.in);56 int number = scanner.nextInt();57 if (number>16 || number<0 ){58 System.out.println("蓝球号码的范围是1-16之间,请重新输入:");59 }else{60 arr[arr.length-1]=number;61 blue--;62 }63 }64 System.out.println("下注的号码组为: "+Arrays.toString(arr));65 return arr;66 }6768 public static int[] createLuckNumbers() {69 int[] arr = new int[7];70 int red = 6;71 int blue = 1;72 Random random = new Random();73 for (int i = 0;i<red;i++){74 arr[i] = random.nextInt(33)+1;75 }76 arr[arr.length-1] = random.nextInt(16)+1;77 System.out.println("开奖的号码组为: "+Arrays.toString(arr));78 return arr;79 }8081// - 6个红球+1个蓝球 ,奖金1000万82//- 6个红球+0个蓝球,奖金500万83//- 5个红球+1个蓝球,奖金3000块84//- 5个红球+0个蓝球,或者4个红球+1个蓝球,奖金200块85//- 4个红球+0个蓝球,或者3个红球+1个蓝球,奖金10块86//- 小于3个红球+1个蓝球,奖金5块87//- 如果前面的都不成立,就中奖,算你为福利事业做贡献了。8889 public static void judge(int[] userNumbers, int[] LuckNumbers) {90 int red = 0;//红球相等个数91 if (userNumbers[userNumbers.length-1] == LuckNumbers[LuckNumbers.length-1]){//如果蓝色球一样,再遍历红色球一样的个数92 for (int i = 0;i<userNumbers.length-1;i++){93 for (int j = 0;j<LuckNumbers.length-1;j++){94 if (userNumbers[i]LuckNumbers[j]){95 red++;96 }97 }98 }99 switch (red){100 case 6:101 System.out.println("奖金1000万");102 break;103 case 5:104 System.out.println("奖金3000块");105 break;106 case 4:107 System.out.println("奖金200块");108 break;109 case 3:110 System.out.println("奖金10块");111 break;112 default:113 System.out.println("奖金5块");114 }115 }else{116 for (int i = 0;i<userNumbers.length-1;i++){117 for (int j = 0;j<LuckNumbers.length-1;j++){118 if (userNumbers[i]LuckNumbers[j]){119 red++;120 }121 }122 }123 switch (red){124 case 6:125 System.out.println("奖金500万");126 break;127 case 5:128 System.out.println("奖金3000块");129 break;130 case 4:131 System.out.println("奖金10块");132 break;133 default:134 System.out.println("你为福利事业做贡献了");135 }136 }137 }138}java
本文来自博客园,作者:萌新小夏,转载请注明原文链接:https://www.cnblogs.com/xkh-blogs/p/17231084.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用