收藏 分销(赏)

JAVA笔记.doc

上传人:精**** 文档编号:3107149 上传时间:2024-06-18 格式:DOC 页数:179 大小:4.10MB 下载积分:20 金币
下载 相关 举报
JAVA笔记.doc_第1页
第1页 / 共179页
JAVA笔记.doc_第2页
第2页 / 共179页


点击查看更多>>
资源描述
第一章 进制数 JAVA用的是十进制,但底层用的是二进制。 十六进制: 十六进制一位数代表二进制四位数。 关系运算: 关系运算比算数运算优先级低,但比赋值运算高。 判断是否相等==和!=优先级低 6>5>4这句话是错的,6>5是true而true和数字是不能比较大小。 两个浮点数不能直接比较,浮点数做运算时存在误差, Class 后面的类名和文件名完全一样,main方法是JAVA程序执行的入口点,所有单词不变,String中的S必须要大写,程序输出小括号中的内容可以变其他单词不变。 变量与数据类型 任何数据都可以用字符串(string)储存 变量的使用 Public class t1{ Public static void main (string args[]){ Int s ; //声明 S=10000; //赋值 System.out.println(s); } } 字符串必须写在双引号里面,字符写在单引号里面。 String y=”张三” ; char b =’男’ ; System.out.println(“姓名:”+y); //字符串和变量用+连接 变量的命名规则和常见错误 驼峰命名法:混合使用大小写 int myAge; 匈牙利命名:开头字母用变量类型缩写 int iMyAge; 大驼峰法: 开头字母用大写 运算符 %取余 =为赋值运算符 == 为关系运算符 关系运算符比较的结果:boolean类型 逻辑运算符 三目运算 :布尔类型表达式?值1:值2 Int i = 10>5 ?1:2 ; 先判断布尔表达式真取值1 假取值2 Scanner input = new scanner(system .in); Int vip = intput.nextInt (); 基础语法 循环结构 For 语句 Double d = Math.random ()*10; System.out.println ((int)d) // 强制类型转换 等同于int d =(int)(Math.random ()*10); 多重循环 使用 if ,else if,if Switch 语句 通过表达式成立与否选择执行哪条语句。 Switch () { Case 表达式1: { 结果与1匹配时执行的语句; Break; } Case 表达式2: { 结果与2匹配时执行的语句; Break; } ..... Defualt: 表达式与以上都不匹配时执行的语句; } 常见错误:break 必须要有,default 通常在程序末尾 public class Test2 { public static void main(String[] args) { // TODO Auto-generated method stub int i=1; int gang=0; while(i<100) { if(i%2==1) { gang=gang+i; } i++; } System.out.println("奇数和:"+gang); } } 循环结构: While import java.util.Scanner; public class Test2 { public static void main(String[] args) { Scanner input = new Scanner(System.in); String answer = "no"; while (answer.equals("no")) // 字符的比较 { System.out.println("上午看书下午编程"); System.out.println("老师我合格了吗"); answer = input.next(); //输入字符不用input.nextInt } } } FOR循环 For (参数初始化;条件判断;更新循环变量){ 循环操作; } 先初始化,再进行参数判断,再执行循环体,执行完循环体后再更新参数变量。 public class For { public static void main(String[] args) { // TODO Auto-generated method stub System.out.print("输入学生姓名:"); // 如果是println 则输入会换行 Scanner input = new Scanner (System.in); String name = input.next(); int gang = 0; for(int i =1;i<=5;i++) { System.out.println("请输入第"+i+"门"); int fen = input.nextInt(); gang = gang+fen; } System.out.println("平均分:"+gang/5); } } Continue public class For { public static void main(String[] args) { // TODO Auto-generated method stub int sum = 0 ; int i ; for (i = 0;i<=10;i++) { if (i==5) { continue; } System.out.println(i); } 终止本次循环直接执行下一次循环。 结果:0,1,2,3,4,6,7,8,9,10 第四章 数组 1, 声明数组 Int [] score1; int score2[], string []name 2, 分配空间 告诉计算机分配几个连续地空间 Score = new int [10] 3, 赋值 Score [0] = 1 边声明边赋值 Int [] score = new int [] {1,2,3}; import java.util.Scanner; public class For { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner (System.in ); int Arrey[] = new int [] {8,4,2,1,23,34,12}; int sum = 0 ; // 数组长度用arrlength表示 for (int i =0; i<Arrey.length ; i++) { System.out.print(Arrey[i]+" "); // 同行,用空格间隔 sum = sum + Arrey[i]; } System.out.println("和:"+sum); System.out.println("请输入一个数:"); int num = input.nextInt(); for (int i = 0;i<=Arrey.length;i++) { if ( num==Arrey[i] ) { break; } } System.out.println(num); } } 8 4 2 1 23 34 12 和:84 请输入一个数:1 1 数组的应用 public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner (System.in); System.out.print("请输入五个同学成绩:"+" "); int fen[] = new int[5]; for (int i= 0;i<fen.length;i++) { fen[i] = input.nextInt(); } System.out.println("排序前:"); for (int i =0 ;i<fen.length;i++) { System.out.print(fen[i]+" "); } System.out.println("排序后:"); Arrays.sort(fen); // 数组的排序 for (int i =0 ;i<fen.length;i++) { System.out.print(fen[i]+" "); } } } 输出最后一个数组:Arr[Arr.length-1] 冒泡法排序 Int jilu = arr[0]; For (int i = 0;i<arr.length ;i++){ If(arr[i]>jilu){ Jilu=arr[i]; } } 任何数字和double类型做运算得出的都是double类型 循环嵌套 public class Test11 { public static void main(String[] args) { // TODO Auto-generated method stub for (int i=1;i<=5;i++) { for (int j =1;j<=i;j++) { System.out.print("*"); //*不换行 } System.out.println(); } } } 输出等腰三角形 两个相对的三角形,将一个三角形插入到另一个中,把其中一个换成空格即可 public class Test11 { public static void main(String[] args) { // TODO Auto-generated method stub for (int i=0;i<=5;i++) { for (int j=5;j>=i;j--) { System.out.print(" "); } for (int j=1;j<=2*i-1;j++) { System.out.print("*"); } System.out.println(""); } } } 输出乘法表 public class Test11 { public static void main(String[] args) { // TODO Auto-generated method stub for (int i =1;i<=9;i++) { for (int j=1;j<=i;j++) { int sum=0; sum=i*j; System.out.print(i+"*"+j+"="+sum+" "); } System.out.println(" "); } } } 第五章 类和对象 类和对象 对象:描述实物的一个实体 方法:对象执行的操作 从对象中抽取的类别即类,类是抽象的概念,对象是一个看的到摸的到的具体实体。人类即类,爸爸即一个对象。 定义一个简单的类: Class Vehicle{ Int passengers; Int mpg; } 再创建对象: Vehicle v=new Vehicle(); 这条语句包含了四个动作: 1, 右边的new Vehicle,是以类为模板在堆空间里创建一个对象 2, 末尾的()表示在对象创建之后立即调用Vehicle类的构造函数对生成的对象初始化,构造函数肯定存在,如果没有写,则JAVA会有一个默认的构造函数 3, 左边是创建了Vehicle 类引用变量,所谓vehicle类引用就是以后可以用来指向vehicle对象的对象引用。 4, = 操作符使对象引用指向刚刚创建的对象 可以将这条语句拆分为下面: Vehicle v ; V = new vehicle(); 一个类里面可以创建很多对象,如果对象连名字都没有,那我们就不能访问他们,我们只能通过对象引用间接地访问对象。 只有Vehicle v ; 时即只有引用,并没有指向对象,会被系统赋予默认值null。 对象相当于一个气球,引用变量相当于一根绳子,有了绳子我们才能轻易的抓住那个气球。一个对象引用可以指向0或1个对象,一个对象可以由N个引用指向他。 String s; s= new String("java"); String s1 = s; s1.append ("world"); System.out.println(s.toString()); System.out.println(s.toString()); 两个打印出来的结果是一样的,s和s1仅仅是两个引用,现在两个引用指向的是一个对象,通过他们得到的也是一个对象的内容。 public class teacher{ // 属性 String name ; String teach; String teachage; //方法 Public void teachstyle; } public class Student { String name; String teach; int teachage; public void teachstyle(){ System.out.println("大家好"); System.out.println("教授方向:"+teach); } } public class S1 { public static void main(String[] args) { //根据老师类创建一个对象wo Student wo = new Student(); wo.name = "sun"; wo.teach = "java"; wo.teachage = 5; wo.teachstyle(); } } 大家好 教授方向:java package text2; import java.util.Scanner; public class Youren { String name; int age; public void buy() { for (;;) { //死循环 Scanner input = new Scanner (System.in); System.out.print("name:"); name=input.next(); if (name.equals("n")) { break; } //s输出为n则结束循环 System.out.print("age:"); age=input.nextInt(); if (age>=18) { System.out.println(name+"的年龄"+age+"门票为20"); }else { System.out.println(name+"的年龄"+age+"门票为免费"); } } } } package text2; public class t2 { public static void main(String[] args) { // TODO Auto-generated method stub Youren u=new Youren(); u.buy(); } } 在进行面向对象编程的时候,方法和成员变量都写在具体的对象里,并对其方法和成员变量都具有很好的隐藏性,对象之间的访问都是通过接口进行的。 抽象是指在定义类的时候,确定该类的行为和动作,比如自行车可以移动,但怎么移动不进行说明。 Bike b = new Bike (); New一个对象,该对象在内存中是存在的,用b表示对这个bike类对象的引用,使用b就能使用这个对象的数据。BIKE是类,b是引用,new bike ()是对象。 使用类时可以使用JAVA中现有的类,String s = new String (); Java中自带String类,描述的是一个字符串。 局部变量是在方法体内创建的,能被final修饰,但不能被public ,protected,default,private,static,修饰 成员变量在堆内创建,局部变量在栈内创建。 在参数为基本类型进行传递的时候,是传递的这个值的备份,无论方法中怎么改变这个备份,都不是操作原来的数,所以原来的值是不会改变的。 用new关键字创建的对象地址是重新分配的,equals方法比较的是对象的引用,是Object类的方法。 方法的返回值 如果方法具有返回值,方法中必须使用关键字return返回该值,返回值的类型为该返回值的类型 return 表达式; 作用:跳出方法返回结果 如果方法没有返回值,则返回值类型为void 方法之间允许互相调用,不需要知道方法的具体实现,实现重用提高效率 public class Ceshi { public void a () { } public void b () { a(); // 在b中调用a } } 不同类之间的调用需要new一个对象,同一类之间可以直接进行调用 方法之间不能相互钱傲定义 不能在方法外部写逻辑代码,逻辑代码只能写到方法里面 public class Ceshi { int java ; int c; int DB; public int zong () { return java+c+DB ; } } public class t2 { public static void main(String[] args) { // TODO Auto-generated method stub Ceshi t= new Ceshi(); Scanner input = new Scanner(System.in); t.c=input.nextInt(); t.DB=input.nextInt(); t.java=input.nextInt(); System.out.println("zong:"+t.zong()); } } 输出总成绩 成员变量和局部变量 变量声明的位置决定变量作用域 变量作用域确定可在程序中按变量名访问该变量的区域 JAVA会给成员变量一个初始值,但不会给局部变量初始值 不同的方法可以定义同样的变量 封装 人机猜拳 分析业务,抽象出类和类的行为和特征,创建用户类 Person.java package caiquan; import java.util.Scanner; public class Person { String name; int fen; Scanner input = new Scanner(System.in); public void setName() { //设置姓名 System.out.println("请输入你的姓名:"); name= input.next(); } public int chu() { System.out.println("请出拳:1,石头,2.剪刀3.布"); int choose ; choose = input.nextInt(); switch (choose) { case 1: System.out.println("你出拳为石头"); break; case 2: System.out.println("你出拳为剪刀"); break; case 3: System.out.println("你出拳为布"); break; } return choose; } } Computer.java package caiquan; import java.util.Scanner; public class Computer { String name ; int fen ; Scanner input = new Scanner(System.in); public int setName() { System.out.println("请选择角色:1,张三2,李四3,王五"); int choose; choose = input.nextInt(); switch (choose) { case 1: name="张三"; break; case 2: name = "李四" ; break; case 3: name = "王五"; break; } return choose; } public int chu () { int choose = (int)(Math.random()*3); switch (choose){ case 0: System.out.println(name+"出拳为石头"); break; case 1: System.out.println(name+"出拳为剪刀"); break; case 2: System.out.println(name+"出拳为布"); break; } return choose+1; } } Game.java package caiquan; import java.util.Scanner; public class Game { Scanner input =new Scanner (System.in); public void start() { Person p=new Person(); Computer c = new Computer(); System.out.println("\t*********************"); System.out.println("\t***猜拳开始***"); System.out.println("\t*********************"); System.out.println("出拳规则:1,石头 2,剪刀 3,布"); c.setName(); p.setName(); System.out.println(c.name+ "vs"+p.name); //没有固定的循环次数,使用while ,对y ,n 不用做其他处理 System.out.println("是否要开始吗?"); String answer= input.next(); int ci=0; while(answer.equals("y")) { ci++; int pquan=p.chu(); int cquan=c.chu(); if((pquan==1&&cquan==2)||(pquan==2&&cquan==3)||(pquan==3&&cquan==1)) { System.out.println(p.name +"win"); p.fen ++; }else { if((pquan==1&&cquan==1)||(pquan==2&&cquan==2)||(pquan==3&&cquan==3)) { System.out.println("平局"); }else { System.out.println(c.name+"win"); c.fen++; } System.out.println("是否进入下一轮:"); answer= input.next(); } } System.out.println("--------------------"); System.out.println("对战次数:"+ci); System.out.println(p.name+"分数为"+p.fen); System.out.println(c.name+"分数为"+c.fen); } } text.java package caiquan; import java.util.Scanner; public class Test { public static void main (String[]args) { Game u = new Game (); u.start(); } } ********************* ***猜拳开始*** ********************* 出拳规则:1,石头 2,剪刀 3,布 请选择角色:1,张三2,李四3,王五 3 请输入你的姓名: ee 王五vsee 是否要开始吗? y 请出拳:1,石头,2.剪刀3.布 1 你出拳为石头 王五出拳为石头 平局 是否进入下一轮: y 请出拳:1,石头,2.剪刀3.布 2 你出拳为剪刀 王五出拳为剪刀 平局 是否进入下一轮: y 请出拳:1,石头,2.剪刀3.布 3 你出拳为布 王五出拳为剪刀 王五win 是否进入下一轮: n -------------------- 对战次数:3 ee分数为0 王五分数为1 类的带参方法 参数的传递: JAVA中传递任何东西都是值传递,且只有这一种参数传递方式,如果传入方法是基本类型或引用的东西,就得到此基本类型或引用的一份拷贝。 定义带参的方法:形参必须要有数据类型 调用带参类型方法:实参,传入值,不带数据类型。 public class t1 { public String A(String name) { String newStr= name+"!"; return newStr; } } public class t2 { public static void main(String[] args) { // TODO Auto-generated method stub t1 A = new t1(); String name = " hello "; //将hello传入t1中去 name = A.A(name); //在对象A中调用A方法 System.out.println(name); } } 可以带多个参数,注意他们的顺序和数据类型即可。 用包组织程序 解决类的同名问题相当于一个文件夹 建立工程,建立一个类,在类中选择加入到哪个包 包名由小写字母组成,不能以原点开头或者结尾。创建了包cn.b.shuguo即创建了目录cn/b/sunguo 使用不在同一包中的类需要import,创建一个包就要引入一个包。inport java.util.*表示导入java.util包中所有的类。 Inport包名.aaa表示引入该包下的aaa类,import语句要在packet语句后使用。 练习 package com.bank; import static java.lang.System.out; import java.util.Scanner; public class Account { int money = 0; public void start() { Scanner input = new Scanner(System.in); while(true) { out.println("1存款 2取款 3退出"); out.println("请选择要办理的业务:"); switch(input.nextInt()) { case 1: out.println("请输入存款金额"); int jin = input.nextInt(); cun(jin); break; case 2: out.println("请输出取款金额:"); jin=input.nextInt(); qu(jin); break; case 3: out.println("谢谢使用再见"); return ; // break是跳出switch循环,return是终止整个方法 } out.println("余额为:"+money); } } public void cun(int jin) { money+=jin; out.println("存款成功"); out.println(); } public void qu(int jin) { if(money>=jin) { money-=jin; out.println("取款成功"); out.println(); }else { out.println("余额不足"); } } } //存钱 package com.bank; public class text { public static void main(String[] args) { // TODO Auto-generated method stub Account ac = new Account(); ac.start(); } } 1存款 2取款 3退出 请选择要办理的业务: 1 请输入存款金额 100 存款成功 余额为:100 1存款 2取款 3退出 请选择要办理的业务: 2 请输出取款金额: 100 取款成功 余额为:0 1存款 2取款 3退出 请选择要办理的业务: 3 谢谢使用再见 字符串 使用String对象存储字符串,String位于java.lang包中具有丰富的方法:计算字符串长度,比较字符串,连接字符串,提取字符串等。 Str.length() 可用于计算字符串长度,即字符串的字符的个数。汉字一个算是一个字符 判断字符串是否一致使用equals()方法,==判断的是两个字符串的内存位置,判断两者是否为同一对象。 判断.java文件名是否正确,判断邮箱格式是否正确 分析:合法的文件名应该以.java结尾。合法的邮箱名至少要包含“@”,“.”,并检查@是否在.之前。 public class
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服