diff --git a/新建 文本文档.txt b/新建 文本文档.txt deleted file mode 100644 index c90fd89..0000000 --- a/新建 文本文档.txt +++ /dev/null @@ -1,2572 +0,0 @@ -三元运算符 -package step4; -import java.util.Scanner; -public class TestYear { - public static void main(String[] args) { - Scanner sc=new Scanner(System.in); - int year=sc.nextInt(); - boolean result; - /********start********/ - result=(year%400==0)? true : false; - result=(year%4==0&&year%100!=0)? true : false; - System.out.println(year + "年是否为闰年:" + result); - /********end********/ -} -} - -运算符的优先级 -package step5; -import java.util.Scanner; -public class TestDemo5 { - public static void main(String[] args) { - Scanner sc=new Scanner(System.in); - System.out.println("输入:"); - int m=sc.nextInt(); - int n=sc.nextInt(); - System.out.println("输出:"); - /*****start*****/ - System.out.println( (m+n)*2 ); - System.out.println( (m-n)%3 ); - System.out.println((m-n)/2 + (m+n)*2); - /*****end*****/ - } -} - -第 2 章 Java入门之控制结构 -Java入门 - 分支结构 -第1关:Java分支结构之 if…else -package step2; -import java.util.Scanner; -public class HelloIfStep2 { - public static void main(String[] args) { - Scanner input = new Scanner(System.in); - /******start******/ - System.out.println("请输入学员成绩:"); - int score = input.nextInt(); - if (score >= 85) -System.out.println("优,非常棒!"); -else { -System.out.println("良,下次加油!"); -} - /******end******/ - } -} - -第6关:来吧,我是BOSS! -package step5; -import java.util.Scanner; -public class Practice { - final static Scanner sc = new Scanner(System.in); //扫描仪 - //第一题 - public void first(){ - System.out.println("请输入人数:"); - int input = sc.nextInt(); //获取输入的数据 - /*****start*****/ - if (input < 10){ - System.out.println("打半场"); - }else { - System.out.println("打全场"); - } - /*****end*****/ - } - - //第二题 - public void second(){ - System.out.println("请输入今天星期几:"); - int input = sc.nextInt(); //获取输入的数据 - /*****start*****/ - if (input == 1){ - System.out.println("今天吃米饭"); - }else if(input == 2){ - System.out.println("今天吃牛排"); - }else if(input == 3){ - System.out.println("今天吃鸡排"); - }else{ - System.out.println("今天吃红烧肉"); - } - /*****end*****/ - } - - //第三题 - public void third(){ - System.out.println("请输入今天星期几:"); - int input = sc.nextInt(); //获取输入的数据 - /*****start*****/ - switch (input) { - case 1: - System.out.println("今天吃米饭"); - break; - case 2: - System.out.println("今天吃牛排"); - break; - case 3: - System.out.println("今天吃鸡排"); - break; - default : - System.out.println("今天吃红烧肉"); - break; - } - /*****end*****/ - } -} - - Java循环结构之do…while循环 -package step3; -public class HelloWorld { - public static void main(String[] args) { - int count= 0; //定义变量存储6的倍数出现的次数 - /*****start*****/ - int i=1; - do{ - if(i%6==0){ - count++; - i++; - }i++; - }while(i<=100); - /*****end*****/ - System.out.println("6的倍数出现的次数为:" + count); - } -} - -Java循环结构之for循环 -package step5; -import java.util.Scanner; -public class HelloWorld { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - System.out.println("请给定一个自然数N:"); - //获取输入的整数N - int sum = 1; - /*****start*****/ - for(int N = sc.nextInt(); N>0; N--) { - sum=sum*N; - } - /*****end*****/ - System.out.println("自然数N的阶乘为" + sum); - } -} - - - - - -for循环的进阶使用-嵌套循环(1) -package step1; -public class ForPractice1 { - public static void test() { - /*****start*****/ - for(int i=0;i<10;i++){ - for ( int j= 0;j <10; j++){ - System.out.print("*"); - } - System.out.println(); - } - /*****end*****/ - } -} - -for循环的进阶使用-嵌套循环(2) -package step2; -public class ForPractice2 { - public static void main(String[] args) { - /*****start*****/ - //在这里打印出正三角形 - for(int x=0;x<10;x++){ - for(int y=0;y<=x;y++){ - System.out.print("*"); - } - System.out.println(); - } - System.out.println("————我是华丽的分界线—————"); - //在这里打印出倒三角形 - for(int x=10;x>0;x--){ - for(int y=x;y>0;y--){ - System.out.print("*"); - } - System.out.println(); - } - /*****end*****/ - } -} -99乘法表 -package step3; -public class ForPractice3 { - public static void main(String[] args) { - /*****start*****/ - for(int i=1;i<10;i++){ - for(int j=1;j<=i;j++){ - System.out.print(j+"*"+i+"="+i*j+"\t"); - } - System.out.println(); - } - /*****end*****/ - } -} - -综合练习之ATM取款机 -package step4 -import java.util.Scanner; -public class ForPractice4 { - public static void main(String[] args) { - /*****start*****/ - int money = 1000; - int cash = 0; - int isornot = 0; - Scanner input =new Scanner(System.in); - System.out.println("欢迎使用中国人民银行ATM取款机"); - do { - System.out.println("输入取款金额:"); - cash = input.nextInt(); - if(money >=cash) - { - money=money-cash; - } - else { - System.out.println("目前余额:"+money+"无法满足您的取款需求!"); - continue; - } - System.out.println("剩余金额:"+money+",是否继续('1':结束,'2':继续):"); - isornot=input.nextInt(); - if(isornot==1) - { - break;} - }while(money>0); - System.out.println("取款结束!"); - - /*****end*****/ - } -} - -第 3 章 Java入门之数组 -Java入门 - 数组基础 -数组练习-平均值和最大值 -package step3; -import java.util.Scanner; -public class HelloWorld { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int[] scores = new int[sc.nextInt()]; - //循环给数组赋值 - for(int i = 0 ; i< scores.length;i++){ - scores[i] = sc.nextInt(); - } - /********** Begin **********/ - //在这里计算数组scores的平均值和最大值 - float sum = 0; - int max = scores[0]; - float avg; - for(int i = 0; i < scores.length; i++){ - sum = sum + scores[i]; - } - for(int i = 1; i < scores.length; i++){ - if(scores[i]>scores[i-1]){ - max = scores[i]; - }else{ - break; - } - } - avg = sum / scores.length; - System.out.println("平均值:"+avg); - System.out.println("最大值:"+max); - /********** End **********/ - } -} - -二维数组 -package step4; -public class HelloWorld { - public static void main(String[] args) { - /********** Begin **********/ - int[][] scores = {{92,85},{91,65},{90,33}}; - for(int i=0; i arr[i+1]){ - int temp = arr[i];//交换位置 - arr[i] = arr[i+1]; - arr[i+1] = temp; - } - } - } - System.out.println(Arrays.toString(arr)); - /********** End **********/ - } -} -第 4 章 Java入门之方法 -Java入门 - 方法的使用 -第2关:掌握无参有返回值方法的调用 -package setp7; -public class HelloWorld { - public static void main(String[] args) { - /********** Begin **********/ - // 调用calcAvg()方法,并将返回值保存在变量avg中 - double avg =calcAvg(); - /********** End **********/ - System.out.println("平均成绩为:" + avg); - } - // 定义一个返回值为double类型的方法 - /********** Begin **********/ - public static double calcAvg() { - double java = 92.5; - double php = 83.0; - double avg = (java + php) / 2; // 计算平均值 - return avg; - // 使用return返回值 - /********** End **********/ - } -} - -掌握有参数无返回值方法的调用 -package setp9; -import java.util.Scanner; -public class HelloWorld { - public static void main(String[] args) { - HelloWorld hello = new HelloWorld(); - Scanner sc = new Scanner(System.in); - int score1 = sc.nextInt(); //第一门成绩 - int score2 = sc.nextInt(); //第二门成绩 - /********** Begin **********/ - // 调用方法,传入两门课程的成绩 - hello.calcAvg(score1,score2); - /********** End **********/ - } - /* - * 功能:计算两门课程考试成绩的平均分并输出平均分 - * 定义一个包含两个参数的方法,用来传入两门课程的成绩 - */ - /********** Begin **********/ - public static void calcAvg(int score1,int score2){ - int avg=(score1+score2)/2; - System.out.print("平均分:"+avg); - } - /********** End **********/ -} - -掌握有参数有返回值方法的调用 -package step3; -import java.util.Scanner; -public class HelloWorld { - public static void main(String[] args) { - HelloWorld hello=new HelloWorld(); - Scanner sc = new Scanner(System.in); - int i = sc.nextInt(); //获取第一个输入的整数 - int j = sc.nextInt(); //获取第二个输入的整数 - int max = hello.getMax(i,j); - /********** Begin **********/ - //在这里调用方法获取返回值 - System.out.println( i+"和"+j+"比较,最大值是:" + max ); - /********** End **********/ - } - /*在这里创建getMax方法,以两个整数作为参数,返回两个整数中较大的值*/ - /********** Begin **********/ - public static int getMax(int i,int j){ - if(i>j) return i; - else return j; - } - /********** End **********/ -} - - - -掌握数组作为参数的使用 -package setp10; -import java.util.Arrays; -public class HelloWorld { - public static void main(String[] args) { - HelloWorld hello=new HelloWorld(); - int[] scores={79,52,98,81}; - /********** Begin **********/ - //调用方法,传入成绩数组,并获取成绩的个数 - int count=hello.sort(scores); - /********** End **********/ - System.out.println("共有"+count+"个成绩信息!"); - } - - /* - * 功能:将考试成绩排序并输出,返回成绩的个数 - * - */ - /********** Begin **********/ - public static int sort( int[] data ){ - // 数组从小到大排序处理 -for(int i=0;idata[j]) - { - int temp=data[i]; - data[i]=data[j]; - data[j]=temp; - } - } - // 打印出数组 - System.out.print("["); -for(int i=0;i arr[j]){ - int tmp = arr[i]; - arr[i] = arr[j]; - arr[j] = tmp; - } - } - } - for(int i = 0; i< arr.length;i++){ - System.out.println(arr[i]); - } - } - /** - * 第五题 - * 你只需要实现for 循环括号的内容就可 ,打印语句系统已经给你完成 - */ - public static void Print99() { - for (int i = 1 ; i<=9;i++) { - for (int j = 1;j <= i ;j++) { - System.out.print(j + " * " + i + " = " + i * j + "\t"); - } - System.out.println(); - } - } - /********** End **********/ -} - - - - - - - - - - -第 5 章 Java 面向对象之类和对象 -Java面向对象 - 类与对象 -第1关:什么是类,如何创建类 - -package step1; - -public class Test { - public static void main(String[] args) { - /********** Begin **********/ - //创建Dog对象 - //设置Dog对象的属性 - Dog wuhuarou = new Dog(); - wuhuarou.name = "五花肉"; - wuhuarou.color = "棕色"; - wuhuarou.variety = "阿拉斯加"; - - //输出小狗的属性 - System.out.println("名字:" +wuhuarou.name+ ",毛色:" +wuhuarou.color + ",品种:" +wuhuarou.variety ); - - //调用方法 -wuhuarou.eat(); -wuhuarou.run(); - - /********** End **********/ - - } -} - -//在这里定义Dog类 -/********** Begin **********/ - -class Dog{ - String name; - String color; - String variety; - void eat(){ - System.out.println("啃骨头"); - } - void run(){ - System.out.println("叼着骨头跑"); - } - -} - -/********** End **********/ -第2关:构造方法 -package step2; - -import java.util.Scanner; - -public class Test { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - String name = sc.next(); - String sex = sc.next(); - /********** Begin **********/ - //分别使用两种构造器来创建Person对象 - Person person1 = new Person(); - - Person person2 = new Person(name,sex); - - /********** End **********/ - - } -} - -//创建Person对象,并创建两种构造方法 -/********** Begin **********/ -class Person{ - String name; - String sex; - - public Person(){ - System.out.println("一个人被创建了"); - } - - - - public Person(String name, String sex){ - this.name = name; - this.sex = sex; - System.out.println("姓名:"+name+','+"性别:"+sex+','+"被创建了"); - } -} - -/********** End **********/ - -第4关:This关键字 -package step3; -import java.util.Scanner; - -public class Test { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - String name = sc.next(); - int age = sc.nextInt(); - String sex = sc.next(); - Person p = new Person(name,age,sex); - p.display(); - } -} - -class Person{ - String name = "张三"; - int age = 18; - String sex = "男"; - /********** Begin **********/ - - public Person(String name,int age,String sex){ - this(age); - this.name = name; - this.sex = sex; - } - - public Person(int age){ - this.age = age; - } - - public void display(){ - String name = "baby"; - int age = 45; - String sex = "女"; - System.out.println("name:" + this.name); - System.out.println("age:" + this.age); - System.out.println("sex:" + this.sex); - } - - - /********** End **********/ -} - -第5关:类与对象练习 -文件一 - -package step4; -import java.util.Scanner; -public class Test { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - String theMa = sc.next(); - int quantity = sc.nextInt(); - boolean likeSoup = sc.nextBoolean(); - /********** Begin **********/ - //使用三个参数的构造方法创建WuMingFen对象 取名 f1 - WuMingFen f1 = new WuMingFen(theMa, quantity, likeSoup); - //使用两个参数的构造方法创建WuMingFen对象 取名 f2 - WuMingFen f2 = new WuMingFen(theMa, quantity); - //使用无参构造方法创建WuMingFen对象 取名 f3 - WuMingFen f3 = new WuMingFen(); - //分别调用三个类的 check方法 - f1.check(); - f2.check(); - f3.check(); - /********** End **********/ - } -} -文件二 - -```lua -/********** Begin **********/ -//在这里添加包名 step4 -package step4; -//创建类 添加属性和方法 -public class WuMingFen{ - String theMa = "酸辣"; - int quantity = 2; - boolean likeSoup = false; - public WuMingFen() { - likeSoup = true; - } - public WuMingFen(String theMa, int quantity, boolean likeSoup) { - this.theMa = theMa; - this.quantity = quantity; - this.likeSoup = likeSoup; - } - public WuMingFen(String theMa, int quantity) { - this.theMa = theMa; - this.quantity = quantity; - } - public void check(){ - System.out.println("面码:"+ theMa +",粉的份量:" + quantity + "两,是否带汤:" + likeSoup ); - } -} -/********** End **********/ -第6关:static关键字 -package step5; - -public class Test { - /********** Begin **********/ - static String name = "楚留香"; - static - { - System.out.println("hello educoder"); - } - public static void main(String[] args) { - System.out.println("我叫" + name); - study(); - } - - public static void study(){ - System.out.println("我喜欢在educoder上学习java"); - } - /********** End **********/ -} - -Java面向对象 - 封装、继承和多态 -第1关:什么是封装,如何使用封装 - -package case1; -public class TestPersonDemo { - public static void main(String[] args) { - /********* begin *********/ - // 声明并实例化一Person对象p - Person p = new Person(); - // 给p中的属性赋值 - p.setName("张三"); - p.setAge(18); - // 调用Person类中的talk()方法 - p.talk(); - /********* end *********/ - } -} -// 在这里定义Person类 -class Person { - /********* begin *********/ - private String name; - private int age; - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public int getAge() { - return age; - } - public void setAge(int age) { - this.age = age; - } - void talk() { - System.out.println("我是:" + name + ",今年:" + age + "岁"); - } - /********* end *********/ -} -第2关:什么是继承,怎样使用继承 -package case2; -public class extendsTest { - public static void main(String args[]) { - // 实例化一个Cat对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息 - /********* begin *********/ - Cat cat= new Cat(); - cat.name="大花猫"; - cat.age=6; - cat.voice(); - cat.eat(); - System.out.println(cat.name+cat.age+"岁"); - /********* end *********/ - - // 实例化一个Dog对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息 - /********* begin *********/ - Dog dog= new Dog(); - dog.name="大黑狗"; - dog.age=8; - dog.voice(); - dog.eat(); - System.out.println(dog.name+dog.age+"岁"); - /********* end *********/ - - } -} - -class Animal { - /********* begin *********/ - protected String name; - protected int age; - - public String getName(){ - return name; - } - public void setName(String name){ - this.name = name; - } - - public int getAge(){ - return age; - } - public void setAge(int age){ - this.age = age ; - } - /********* end *********/ - -} - -class Cat extends Animal { - // 定义Cat类的voice()和eat()方法 - /********* begin *********/ - public void voice(){ - System.out.println(name+"喵喵叫"); - } - public void eat(){ - System.out.println(name+"吃鱼"); - } - /********* end *********/ -} - -class Dog extends Animal { - // 定义Dog类的voice()和eat()方法 - /********* begin *********/ - public void voice(){ - System.out.println(name+"汪汪叫"); - } - public void eat(){ - System.out.println(name+"吃骨头"); - } - /********* end *********/ -} - -第3关:super关键字的使用 -package case3; -public class superTest { - public static void main(String[] args) { - // 实例化一个Student类的对象s,为Student对象s中的school赋值,打印输出信息 - /********* begin *********/ - Person p= new Person(); - p.setName("张三"); - p.setAge(18); - p.talk(); - Student stu= new Student(); - - stu.school="哈佛大学"; - - System.out.println(",学校:"+stu.school); - - /********* end *********/ - } -} - -class Person { - /********* begin *********/ - - private String name ; - private int age; - - public String getName(){ - return name; - } - - public void setName(String name){ - this.name= name; - } - - public int getAge(){ - return age; - } - - public void setAge(int age){ - this.age= age; - } - - public void talk(){ - System.out.print("姓名:"+name+",年龄:"+age); - } - /********* end *********/ -} - -class Student extends Person { - /********* begin *********/ - public String school; - public String getSchool(){ - return school; - } - - public void setSchool(String name){ - this.school= school; - } - /********* end *********/ -} - -第4关:方法的重写与重载 -package case4; -public class overridingTest { - public static void main(String[] args) { - // 实例化子类对象s,调用talk()方法打印信息 - /********* begin *********/ - Student s=new Student("张三",18,"哈佛大学"); - s.talk(); - /********* end *********/ - - } -} - -class Person { - /********* begin *********/ - public String name; - public int age; - void talk(){ - System.out.println("我是:"+name+",今年:"+age+"岁"); - } - /********* end *********/ -} - -class Student extends Person { - /********* begin *********/ - String school; - Student(String name,int age,String school){ - this.name=name; - this.age=age; - this.school=school; - } - void talk(){ - System.out.println("我是:"+name+",今年:"+age+"岁,我在"+school+"上学"); - } - /********* end *********/ -} -第5关:抽象类 -package case5; -public class abstractTest { - public static void main(String[] args) { - /********* begin *********/ - // 分别实例化Student类与Worker类的对象,并调用各自构造方法初始化类属性。 - Student s=new Student("张三",20,"学生"); - Worker w=new Worker("李四",30,"工人"); - s.talk(); - w.talk(); - // 分别调用各自类中被复写的talk()方法 打印信息。 - /********* end *********/ - } -} - -// 声明一个名为Person的抽象类,在Person中声明了三个属性name age occupation和一个抽象方法——talk()。 -abstract class Person { - /********* begin *********/ - String name; - int age; - String occupation; - abstract void talk(); - /********* end *********/ -} - -// Student类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息 -class Student extends Person { - /********* begin *********/ - Student(String name,int age,String occupation){ - this.name=name; - this.age=age; - this.occupation=occupation; - } - void talk(){ - System.out.println("学生——>姓名:"+name+",年龄:"+age+",职业:"+occupation+"!"); - } - /********* end *********/ -} -// Worker类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息 -class Worker extends Person { - /********* begin *********/ - Worker(String name,int age,String occupation){ - this.name=name; - this.age=age; - this.occupation=occupation; - } - void talk(){ - System.out.println("工人——>姓名:"+name+",年龄:"+age+",职业:"+occupation+"!"); - } - /********* end *********/ -} -第6关:final关键字的理解与使用 -package case6; -public class finalTest { - public static void main(String args[]) { - Bike1 obj = new Bike1(); - obj.run(); - - Honda honda = new Honda(); - honda.run(); - - Yamaha yamaha = new Yamaha(); - yamaha.run(); - } -} -//不可以修改 final 变量的值 -// final方法,不可以重写 -//// 不可以扩展 final 类 - //请在此添加你的代码 - /********** Begin *********/ - class Bike1 { - final int speedlimit = 90; - - void run() { - speedlimit = 120; - System.out.println("speedlimit=120"); - } - -} - -class Bike2 { - final void run() { - System.out.println("running"); - } -} -class Honda extends Bike2 { - void run() { - System.out.println("running safely with 100kmph"); - } - -} - -final class Bike3 { -} - -class Yamaha extends Bike3 { - void run() { - System.out.println("running safely with 100kmph"); - } - -} - /********** End **********/ - -第7关:接口 -package case7; -public class interfaceTest { - public static void main(String[] args) { - // 实例化一Student的对象s,并调用talk()方法,打印信息 - /********* begin *********/ - Student s=new Student(); - System.out.println(s.talk()); - /********* end *********/ - } -} -// 声明一个Person接口,并在里面声明三个常量:name、age和occupation,并分别赋值,声明一抽象方法talk() -interface Person { - /********* begin *********/ - final String name="张三"; - final int age=18; - final String occupation="学生"; - public abstract String talk(); - /********* end *********/ -} - -// Student类继承自Person类 复写talk()方法返回姓名、年龄和职业信息 -class Student implements Person { - /********* begin *********/ - public String talk() { - return "学生——>姓名:" + this.name + ",年龄:" + this.age + ",职业:" - + this.occupation + "!"; - } - /********* end *********/ -} -第8关:什么是多态,怎么使用多态 -package case8; -public class TestPolymorphism { - public static void main(String[] args) { - // 以多态方式分别实例化子类对象并调用eat()方法 - /********* begin *********/ - Animal a=new Dog(); - a.eat(); - Animal b=new Cat(); - b.eat(); - Animal c=new Lion(); - c.eat(); - /********* end *********/ - } -} -// Animal类中定义eat()方法 -abstract class Animal { - /********* begin *********/ - abstract void eat(); - /********* end *********/ -} - -// Dog类继承Animal类 复写eat()方法 -class Dog extends Animal { - /********* begin *********/ - public void eat(){ - System.out.println("eating bread..."); - } - /********* end *********/ -} -// Cat类继承Animal类 复写eat()方法 -class Cat extends Animal { - /********* begin *********/ - public void eat(){ - System.out.println("eating rat..."); - } - /********* end *********/ -} - -// Lion类继承Animal类 复写eat()方法 -class Lion extends Animal { - /********* begin *********/ - public void eat(){ - System.out.println("eating meat..."); - } - /********* end *********/ -} -Java面向对象 - 封装、继承和多态的综合练习 -第1关:封装、继承和多态进阶(一) -package case1; -import java.util.Scanner; -public class Task1 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - String dogName = sc.next(); - String dogSex = sc.next(); - String dogColor = sc.next(); - String catName = sc.next(); - String catSex = sc.next(); - double catWeight = sc.nextDouble(); - // 通过有参构造函数实例化Dog类对象dog - // dog调用talk()方法 - // dog调用eat()方法 - /********* begin *********/ - Dog dog=new Dog(dogName,dogSex,dogColor); - dog.talk(); - dog.eat(); - /********* end *********/ - // 通过有参构造函数实例化Cat类对象cat - // cat调用talk()方法 - // cat调用eat()方法 - /********* begin *********/ - Cat cat=new Cat(catName,catSex,catWeight); - cat.talk(); - cat.eat(); - /********* end *********/ - } -} - -// 抽象类Pet 封装属性name和sex -// 构造函数初始化name和sex -// 声明抽象方法talk() -// 声明抽象方法eat() -abstract class Pet { - /********* begin *********/ - String name; - String sex; - public abstract void talk(); - public abstract void eat(); - /********* end *********/ -} -// Dog类继承自Pet类 封装属性color -// 构造函数初始化name、sex和color -// 实现自己的talk()方法和eat()方法 -// talk()输出'名称:name,性别:sex,颜色:color,汪汪叫' -// eat()输出'name吃骨头' -class Dog extends Pet { - /********* begin *********/ - String color; - public Dog(String name,String sex,String color){ - this.name=name; - this.sex=sex; - this.color=color; - } - public void talk(){ - System.out.println("名称:"+name+",性别:"+sex+",颜色:"+color+",汪汪叫"); - } - public void eat(){ - System.out.println(name+"吃骨头!"); - } - /********* end *********/ -} - -// Cat类继承自Pet类 封装属性weight -// 构造函数初始化name、sex和weight -// 实现自己的talk()方法和eat()方法 -// talk()输出'名称:name,性别:sex,体重:weight kg,喵喵叫' -// eat()输出'name吃鱼' -class Cat extends Pet { - /********* begin *********/ - double weight; - Cat(String name,String sex,double weight){ - this.name=name; - this.sex=sex; - this.weight=weight; - } - public void talk(){ - System.out.println("名称:"+name+",性别:"+sex+",体重:"+weight+"kg,喵喵叫"); - } - public void eat(){ - System.out.println(name+"吃鱼!"); - } - - /********* end *********/ -} -第2关:封装、继承和多态进阶(二) -package case2; -import java.util.Scanner; -public class Task2 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - String cName = sc.next(); - String cSex = sc.next(); - int cAge = sc.nextInt(); - String eName = sc.next(); - String eSex = sc.next(); - int eAge = sc.nextInt(); - // 创建测试类对象test - Person test; - // 创建Person类对象person1,引用指向中国人,通过有参构造函数实例化中国人类对象 - Person person1=new Chinese(cName,cSex,cAge); - // 通过showEat()方法调用Chinese的eat()方法 - showEat(person1); - // 创建Person类对象person2,引用指向英国人,通过有参构造函数实例化英国人类对象 - Person person2=new English(eName,eSex,eAge); - // 通过showEat()方法调用English的eat()方法 - showEat(person2); - /********* begin *********/ - /********* end *********/ - // 强制类型转换(向下转型) 调用Chinese类特有的方法shadowBoxing() - Chinese d=(Chinese)person1; - d.shadowBoxing(); - // 强制类型转换(向下转型) 调用English类特有的方法horseRiding() - English e=(English)person2; - e.horseRiding(); - /********* begin *********/ - - /********* end *********/ - } - - // 定义showEat方法,使用父类作为方法的形参,实现多态,传入的是哪个具体对象就调用哪个对象的eat()方法 - /********* begin *********/ - - public static void showEat(Person p){ - p.eat(); - } - /********* end *********/ -} -// 抽象类Person 封装属性name、sex和age -// 构造函数初始化name、sex和age -// 声明抽象方法eat() -abstract class Person { - /********* begin *********/ - public String name; - public String sex; - public int age; - abstract void eat(); - /********* end *********/ -} -// Chinese类继承自Person类 -// 构造函数初始化name、sex和age -// 重写父类方法eat() 输出'姓名:name,性别:sex,年龄:age,我是中国人,我喜欢吃饭!' -// 定义子类特有方法shadowBoxing(),当父类引用指向子类对象时无法调用该方法 输出'name在练习太极拳!' -class Chinese extends Person { - /********* begin *********/ - public String name; - public String sex; - public int age; - Chinese(String name,String sex,int age){ - this.name=name; - this.sex=sex; - this.age=age; - } - void eat(){ - System.out.println("姓名:"+name+",性别:"+sex+",年龄:"+age+",我是中国人,我喜欢吃饭!"); - } - void shadowBoxing(){ - System.out.println(name+"在练习太极拳!"); - } - /********* end *********/ -} -// English类继承自Person类 -// 构造函数初始化name、sex和age -// 重写父类方法eat() 输出'姓名:name,性别:sex,年龄:age,我是英国人,我喜欢吃三明治!' -// 定义子类特有方法horseRiding(),当父类引用指向子类对象时无法调用该方法 输出'name在练习骑马!' -class English extends Person { - /********* begin *********/ - public String name; - public String sex; - public int age; - English(String name,String sex,int age){ - this.name=name; - this.sex=sex; - this.age=age; - } - void eat(){ - System.out.println("姓名:"+name+",性别:"+sex+",年龄:"+age+",我是英国人,我喜欢吃三明治!"); - } - void horseRiding(){ - System.out.println(name+"在练习骑马!"); - - } - /********* end *********/ -} -第3关:封装、继承和多态进阶(三) -package case3; -import java.util.Scanner; -public class Task3 { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - String pppName = sc.next(); - int pppAge = sc.nextInt(); - String bpName = sc.next(); - int bpAge = sc.nextInt(); - String ppcName = sc.next(); - int ppcAge = sc.nextInt(); - String bcName = sc.next(); - int bcAge = sc.nextInt(); - // 测试运动员(乒乓球运动员和篮球运动员) - // 乒乓球运动员 - // 通过带参构造函数实例化PingPangPlayer对象ppp - // 输出'name---age' - // 分别调用sleep()、eat()、study()、speak()方法 - /********* begin *********/ - PingPangPlayer ppp=new PingPangPlayer(pppName,pppAge); - System.out.println(pppName+"---"+pppAge); - ppp.sleep(); - ppp.eat(); - ppp.study(); - ppp.speak(); - /********* end *********/ - System.out.println("----------------"); - // 篮球运动员 - // 通过带参构造函数实例化BasketballPlayer对象bp - // 输出'name---age' - // 分别调用sleep()、eat()、study()方法 - /********* begin *********/ - BasketballPlayer bp=new BasketballPlayer(bpName,bpAge); - System.out.println(bpName+"---"+bpAge); - bp.sleep(); - bp.eat(); - bp.study(); - /********* end *********/ - System.out.println("----------------"); - // 测试教练(乒乓球教练和篮球教练) - // 乒乓球教练 - // 通过带参构造函数实例化PingPangCoach对象ppc - // 输出'name---age' - // 分别调用sleep()、eat()、teach()、speak()方法 - /********* begin *********/ - PingPangCoach ppc=new PingPangCoach(ppcName,ppcAge); - System.out.println(ppcName+"---"+ppcAge); - ppc.sleep(); - ppc.eat(); - ppc.teach(); - ppc.speak(); - /********* end *********/ - System.out.println("----------------"); - // 篮球教练 - // 通过带参构造函数实例化BasketballCoach对象bc - // 输出'name---age' - // 分别调用sleep()、eat()、teach()方法 - /********* begin *********/ - BasketballCoach bc=new BasketballCoach(bcName,bcAge); - System.out.println(bcName+"---"+bcAge); - bc.sleep(); - bc.eat(); - bc.teach(); - /********* end *********/ - System.out.println("----------------"); - } -} - -// 说英语接口 声明抽象方法speak() -interface SpeakEnglish { - /********* begin *********/ - abstract void speak(); - /********* end *********/ -} - -// 定义人的抽象类Person 封装name和age -// 无参构造函数 -// 有参构造函数初始化name和age -// 定义具体方法sleep() 输出'人都是要睡觉的' -// 抽象方法eat()(吃的不一样) -abstract class Person { - /********* begin *********/ - String name; - int age; - Person(String name,int age){ - this.name=name; - this.age=age; - } - void sleep(){ - System.out.println("人都是要睡觉的"); - } - abstract void eat(); - /********* end *********/ -} - -// 定义运动员Player(抽象类)继承自Person类 -// 无参构造函数 -// 有参构造函数初始化name和age -// 运动员学习内容不一样,抽取为抽象 定义抽象方法study() -abstract class Player extends Person { - /********* begin *********/ - Player(String name,int age){ - super(name,age); - } - abstract void study(); - /********* end *********/ -} - -// 定义教练Coach(抽象类)继承自Person类 -// 无参构造函数 -// 有参构造函数初始化name和age -// 教练教的不一样 定义抽象方法teach() -abstract class Coach extends Person { - /********* begin *********/ - Coach(String name,int age){ - super(name,age); - } - abstract void teach(); - /********* end *********/ -} - -// 定义乒乓球运动员具体类PingPangPlayer 继承自Player类并实现SpeakEnglish类(兵乓球运动员需要说英语) -// 无参构造函数 -// 有参构造函数初始化name和age -// 实现自己的eat()方法 输出'乒乓球运动员吃大白菜,喝小米粥' -// 实现自己的study()方法 输出'乒乓球运动员学习如何发球和接球' -// 实现自己的speak()方法 输出'乒乓球运动员说英语' -class PingPangPlayer extends Player implements SpeakEnglish { - /********* begin *********/ - PingPangPlayer(String name,int age){ - super(name,age); - } - void eat(){ - System.out.println("乒乓球运动员吃大白菜,喝小米粥"); - } - void study(){ - System.out.println("乒乓球运动员学习如何发球和接球"); - } - public void speak(){ - System.out.println("乒乓球运动员说英语"); - } - /********* end *********/ -} - -// 定义篮球运动员具体类BasketballPlayer 继承自Player类 不需要继承接口,因为他不需要说英语 -// 无参构造函数 -// 有参构造函数初始化name和age -// 实现自己的eat()方法 输出'篮球运动员吃牛肉,喝牛奶' -// 实现自己的study()方法 输出'篮球运动员学习如何运球和投篮' -class BasketballPlayer extends Player { - /********* begin *********/ - BasketballPlayer(String name,int age){ - super(name,age); - } - void eat(){ - System.out.println("篮球运动员吃牛肉,喝牛奶"); - } - void study(){ - System.out.println("篮球运动员学习如何运球和投篮"); - } - /********* end *********/ -} - -// 定义乒乓球教练具体类 PingPangCoach 继承自Coach类并实现SpeakEnglish类(兵乓球教练需要说英语) -// 无参构造函数 -// 有参构造函数初始化name和age -// 实现自己的eat()方法 输出'乒乓球教练吃小白菜,喝大米粥' -// 实现自己的teach()方法 输出'乒乓球教练教如何发球和接球' -// 实现自己的speak()方法 输出'乒乓球教练说英语' -class PingPangCoach extends Coach implements SpeakEnglish { - /********* begin *********/ - PingPangCoach(String name,int age){ - super(name,age); - } - void eat(){ - System.out.println("乒乓球教练吃小白菜,喝大米粥"); - } - void teach(){ - System.out.println("乒乓球教练教如何发球和接球"); - } - public void speak(){ - System.out.println("乒乓球教练说英语"); - } - /********* end *********/ -} - -// 定义篮球教练具体类BasketballCoach 继承自Coach类 不需要继承接口,因为他不需要说英语 -// 无参构造函数 -// 有参构造函数初始化name和age -// 实现自己的eat()方法 输出'篮球教练吃羊肉,喝羊奶' -// 实现自己的teach()方法 输出'篮球教练教如何运球和投篮' -class BasketballCoach extends Coach { - /********* begin *********/ - BasketballCoach(String name,int age){ - super(name,age); - } - void eat(){ - System.out.println("篮球教练吃羊肉,喝羊奶"); - } - void teach(){ - System.out.println("篮球教练教如何运球和投篮"); - } - /********* end *********/ -} -第 6 章 Java面向对象之常用类 -Java面向对象 - String类 -第1关:length()方法与compareTo()方法的使用 - 花名册 -package step1; -import java.util.Scanner; - -public class Roster { - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - /********** Begin *********/ - String str1 = scanner.next(); - String str2 = scanner.next(); - String str3 = scanner.next(); - String str7 = scanner.next(); - String str4 = scanner.next(); - String str5 = scanner.next(); - String str6 = scanner.next(); - String str8 = scanner.next(); - String roster1 = str1+" "+str2+" "+str3+" "+str7; - String roster2 = str4+" "+str5+" "+str6+" "+str8; - System.out.println(roster1.length()); - System.out.println(roster1.length()); - if(roster1.compareTo(roster2) == 0){ - System.out.println("相同"); - }else{ - System.out.println("不相同"); - } - - /********** End *********/ - } -} - -第2关:substring()方法与indexOf()方法的使用 - 姓名查找 - -package step2; - -import java.util.Scanner; - -public class NameSearch { - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - /********** Begin *********/ - String data = scanner.next(); - String name = scanner.next(); - - int j,k = 0; - for(int i = 0;i 0) { - String str2 = fileName.substring(fileName.length()-str1.length()); - if (str1.equals(str2) && str1.length() < fileName.length()) { - System.out.println("Java文件名正确"); - }else { - System.out.println("Java文件名无效"); - } - }else { - System.out.println("Java文件名无效"); - } - int a = email.lastIndexOf("@"); - int b= email.lastIndexOf("."); - if(a > 0 && b > 0) { - if (a > 0 && a < b) { - System.out.println("邮箱名正确"); - }else { - System.out.println("邮箱名无效"); - } - }else { - System.out.println("邮箱名无效"); - } - -/********** End **********/ - } - - -} - -第4关:StringBuffer类的定义和使用 - 字母反转 - -package step4; - -public class Reverse { - public static StringBuffer start(String data) { - StringBuffer ans = new StringBuffer(); - /********** Begin *********/ - String[] str2 = data.split(" "); - String str3 = null; - for(int i = 0;i < str2.length;i++){ - StringBuffer stringBuffer = new StringBuffer(str2[i]); - str2[i] = stringBuffer.reverse().toString(); - if(i == 0){ - str3 = str2[0]; - } - if(i > 0) { - str3 = str3 + " " + str2[i]; - } - } - ans = new StringBuffer(str3); - /********** End *********/ - return ans; - } -} - -Java面向对象 - 包装类 -第1关:基本数据类型和包装类之间的转换 -package step1; -public class Task { -public static void main(String[] args) { -//请在此添加实现代码 -/********** Begin **********/ -//定义float对象 - float f = 66.6f; - //手动装箱 - Float f1 = new Float(f) ; - //自动装箱 - Float f2 = f ; - System.out.println("装箱后的结果为:" + f1 + "和" + f2); - //定义一个Double包装类值为88.88 - Double d = new Double(88.88); - //手动拆箱 - double d1 = d.doubleValue(); - //自动拆箱 - double d2 = d; - System.out.println("拆箱结果为:" + d1 + "和" + d2); -/********** End **********/ - } -} - -第2关:包装类转换成其他数据类型 - package step2; -public class Task { -public static void main(String[] args) { -//请在此添加实现代码 -/********** Begin **********/ -// 定义int类型变量,值为67 - int score = 67; - // 创建Integer包装类对象,表示变量score的值 - Integer score1 = new Integer(score); - // 将Integer包装类转换为double类型 - double score2 = score1.doubleValue() ; - // 将Integer包装类转换为float类型 - float score3 =score1.floatValue() ; - // 将Integer包装类转换为int类型 - int score4 = score1.intValue() ; - System.out.println("Integer包装类:" + score1); - System.out.println("double类型:" + score2); - System.out.println("float类型:" + score3); - System.out.println("int类型:" + score4); -/********** End **********/ - } -} - -第3关:包装类与字符串之间的转换 - -package step3; -public class Task { -public static void main(String[] args) { -double a = 78.5; -//请在此添加实现代码 -/********** Begin **********/ -//将基本类型a转换为字符串 - String str =String.valueOf(a) ; - System.out.println("str + 12 的结果为: "+(str + 12)); - String str1 = "180.20"; - // 将字符串str1转换为基本类型 - Double d = Double.parseDouble(str1) ; - System.out.println("d + 100 的结果为: "+ (d + 100)); -/********** End **********/ - } -} - -Java面向对象 - 常用类 -第1关:Object类 - -package case1; -import java.util.Scanner; -public class ObjectTest { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int num1 = sc.nextInt(); - int num2 = sc.nextInt(); - // 在测试类中创建Demo类对象d1,传入输入值num1, d1调用toString方法并打印输出该值 - // 创建Demo类对象d2,同样传入输入值num1,打印判断d1和d2是否相等(实际是比较地址) - /********* Begin *********/ - Demo d1=new Demo(num1); - System.out.println(d1.toString()); - Demo d2=new Demo(num1); - if (d1.equals(d2)) { - System.out.println("true"); - } else { - System.out.println("false"); - } - /********* End *********/ - // 创建Person类对象p,传入输入值num2,打印判断d1和p是否相等(实际是比较地址) - /********* Begin *********/ - Person p=new Person(num2); - if (d1.equals(p)) { - System.out.println("true"); - } else { - System.out.println("false"); - } - /********* End *********/ - } -} -class Demo { - private int num; - public Demo(int num) { - this.num = num; - } - public boolean equals(Object obj) // Object obj = new Demo() - { - if (!(obj instanceof Demo)) // 判断obj是否和Demo是同类 - return false; - Demo d = (Demo) obj; // 将父类的引用(Object)向下转换为子类(Demo) - return this.num == d.num; - } - public String toString() { - return "Demo:" + num; // 返回对象的值(每一个对象都有自己的特定的字符串) - } -} -class Person { - private int num; - public Person(int num) { - this.num = num; - } -} - -第2关:JAVA基础类型包装类-练习 - -package case2; -import java.util.Scanner; -public class WrapperTest { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int aa = sc.nextInt(); - String bb = sc.next(); - int c = sc.nextInt(); - String str11 = sc.next(); - String str22 = sc.next(); - // 包装类中“==”与equals的用法比较 - // 值得注意的是,包装类中的equals方法和String类一样,都是重写了Object类中的equals方法,因此比较的是内容而不是地址, - // 而“==”比较的依然是引用变量的地址,只是当包装类型和与之相对应的基本类型进行“==”比较时会先做自动拆箱处理。 - /********* Begin *********/ - Integer a=new Integer(aa); - Integer b=Integer.parseInt(bb); - String str1=new String(str11); - String str2=new String(str22); - System.out.println(a==b); - System.out.println(a==c); - System.out.println(b==c); - System.out.println(a.equals(b)); - System.out.println(str1==str2); - System.out.println(str1.equals(str2)); - /********* End *********/ - } -} - -第3关:String&StringBuilder&StringBuffer类-练习 - -package case3; -import java.util.Scanner; -public class StringTest { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - String str = sc.next(); - // String substring(int start,int end) - // 截取字符串,传入的两个参数分别为要截取边界的下标 - // 在java api 中,通常使用两个数字表示范围时,都是含头不含尾,即包含起始下标对应的内容,但不包含结束下标的处对应的内容 - // String toUpperCase() 将当前字符串中的英文部分转换为全大写 - /********* Begin *********/ - String str1=str.substring(12,str.lastIndexOf('.')); - if(str1.indexOf('.')>0){ - str1=str1.substring(0,str1.indexOf('.')); - } - System.out.println(str1); - str1=str1.toUpperCase(); - System.out.println(str1); - /********* End *********/ - } -} - -第4关:Random类 - -package case4; -//密码的自动生成器:密码由大写字母/小写字母/数字组成,生成六位随机密码 -import java.util.Random; -import java.util.Scanner; -public class RandomTest { - public static void main(String[] args) { - // 定义一个字符型数组 - char[] pardStore = new char[62]; - // 把所有的大写字母放进去 把所有的小写字母放进去 把0到9放进去 - /********* Begin *********/ - for(int i=0;i<26;i++) - { - pardStore[i]=(char)('A'+i); - pardStore[26+i]=(char)('a'+i); - } - for(int i=0;i<10;i++) - { - pardStore[52+i]= (char)('0' + i); - } - /********* End *********/ - // 分别以1、2、3作为种子数 生成6位随机密码 - Scanner sc = new Scanner(System.in); - int seed = sc.nextInt(); - /********* Begin *********/ - Random r=new Random(seed); - String str=""; - int[] arr=r.ints(6,0,62).toArray(); - for(int i=0;i<6;i++) - { - str+=pardStore[arr[i]]; - } - System.out.print(str); - /********* End *********/ - } -} - -第5关:Date类和SimpleDateFormat类的用法 -package case5; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Scanner; -public class DateTest { - public static void main(String[] args) throws ParseException { - // 键盘录入你的出生年月日 格式为yyyy-MM-dd - // 把该字符串转换为一个日期 - // 通过该日期得到一个毫秒值 - // 获取2020年10月1日的毫秒值 - // 两者想减得到一个毫秒值 - // 把该毫秒值转换为天 打印输出 - Scanner sc = new Scanner(System.in); - String line = sc.nextLine(); - /********* Begin *********/ - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); - Date d1=sdf.parse(line); - Date d2=sdf.parse("2020-10-01"); - long diff=d2.getTime()-d1.getTime(); - diff=diff/86400000; - System.out.println("你的出生日期距离2020年10月1日:"+diff+"天"); - /********* End *********/ - } -} - -第6关:Math类 -package case6; -import java.util.Scanner; -import java.lang.Math; -public class MathTest { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int a1 = sc.nextInt(); - int a2 = sc.nextInt(); - int a3 = sc.nextInt(); - int a4 = sc.nextInt(); - double a5 = sc.nextDouble(); - double a6 = sc.nextDouble(); - double a7 = sc.nextDouble(); - double a8 = sc.nextDouble(); - double a9 = sc.nextDouble(); - double a10 = sc.nextDouble(); - double a11 = sc.nextDouble(); - /********* Begin *********/ - System.out.println(Math.sqrt(a1)); - System.out.println(Math.cbrt(a2)); - System.out.println(Math.pow(a3,a4)); - System.out.println(Math.max(a5,a6)); - System.out.println(Math.min(a5,a6)); - System.out.println(Math.abs(a7)); - System.out.println(Math.ceil(a8)); - System.out.println(Math.floor(a9)); - System.out.println(Math.rint(a10)); - System.out.println(Math.round(a11)); - /********* End *********/ - } -} - -第 7 章 Java面向对象之异常类与文件类 -Java面向对象 - Java中的异常 -第2关:捕获异常 -package step2; -import java.util.Scanner; -public class Task { - public static void main(String[] args) { - Scanner sc = new Scanner(System.in); - int num1 = sc.nextInt(); - int num2 = sc.nextInt(); - /********* Begin *********/ - try{ - System.out.println(num1/num2); - }catch(ArithmeticException e){ - System.out.print("除数不能为0"); - } - - - /********* End *********/ - } - -} - -第3关:抛出异常 - -package step3; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -public class Task { - /********* Begin *********/ - //请在合适的部位添加代码 - public static void main(String[] args)throws FileNotFoundException { - test(); - } - public static void test() throws FileNotFoundException { - File file = new File("abc"); - if(!file.exists()){ //判断文件是否存在 - //文件不存在,则 抛出 文件不存在异常 - throw new FileNotFoundException("该文件不存在"); - }else{ - FileInputStream fs = new FileInputStream(file); - } - } - /********* End *********/ -} - -第4关:自定义异常 -package step4; -import java.util.Scanner; -public class Task { - /********* Begin *********/ - public static void main(String[] args)throws MyException { - Scanner sc = new Scanner(System.in); - String username = sc.next(); - //判断用户名 - if(username.length()<3){ - throw new MyException("用户名小于三位Exception"); - } - else{ - System.out.println("用户名格式正确"); - } - } -} -class MyException extends Exception{ - public MyException(){} - public MyException(String msg){ - super(msg); - } -} -/********* End *********/ - -第 8 章 集合框架 -Java高级特性 - 集合框架(1) -第1关:集合的基本使用 - -package step1; -// 导包 -/********** Begin **********/ -import java.util.ArrayList; -/********** End **********/ -public class HelloWorld { - @SuppressWarnings("unchecked") - public ArrayList getList() { - /********** Begin **********/ - ArrayList list = new ArrayList(); - list.add("https:www.educoder.net"); - list.add(2018.423); - return list; - /********** End **********/ - } -} - - - -第2关:ArrayList集合的增删改查 - -package step2; -import java.util.ArrayList; -import java.util.Scanner; -public class HelloWorld { - @SuppressWarnings("unchecked") - public static void main(String[] args) { - //获取输入的数据并添加至集合 - Scanner sc = new Scanner(System.in); - ArrayList list = new ArrayList<>(); - int length = sc.nextInt(); - for(int i =0 ; i< length; i++){ - list.add(sc.next()); - } - /********** Begin *********/ - list.remove(0); - list.remove(length-2); - list.add("hello"); - list.add("educoder"); - list.set(2,"list"); - for(int i=0;i list = new ArrayList(); - while(sc.hasNext()){ - list.add(sc.next()); - } - for(int i=0;i menuDict = new HashMap<>(); - Scanner sc = new Scanner(System.in); - for (int i = 0; i < 5; i++) { - menuDict.put(sc.next(),sc.nextInt()); - } - /********** Begin **********/ - menuDict.put("lamb",50); - System.out.println(menuDict.get("fish")); - menuDict.put("fish",100); - menuDict.remove("noodles"); - System.out.println(menuDict.toString()); - /********** End **********/ - } -} - -第 11 章 Java IO -学习-Java输入输出之字节缓冲IO流之复制文件 -第1关:学习-Java输入输出之字节缓冲IO流之复制文件 - -import java.io.*; -import java.util.Scanner; -public class FileTest { - public static void main(String[] args) throws IOException { - Scanner scanner = new Scanner(System.in); // 获取给定字符串 - String s = scanner.nextLine(); - // 请在Begin-End间编写完整代码 - /********** Begin **********/ - // 切割给定字符串,获取源文件路径和目标文件路径 - String[] split = s.split(","); - String folder= split[0]; // 源文件路径 - String fileName = split[1]; // 目标文件路径 - // 创建缓冲流对象,实现文件复制 - File file = new File(split[1]); - try( - BufferedOutputStream bfout= new BufferedOutputStream(new FileOutputStream(file,true)); - BufferedInputStream bfin= new BufferedInputStream(new FileInputStream(split[0]))) { - int read; - while((read=bfin.read())!=-1){ - bfout.write(read); - } - } - // 输出目标文件长度 - System.out.println("文件长度:"+file.length()); - /********** End **********/ - } -} - -学习-Java输入输出之文件字符IO流之文件加密 -第1关 - -import java.io.*; - -import static java.lang.Character.isLetterOrDigit; - -import java.util.Scanner; - -public class FileTest { - public static void main(String[] args) throws IOException { - // 请在Begin-End间编写完整代码 - - // 接收给定字符串,获取相关路径 - - Scanner sc = new Scanner(System.in); - - String strs = sc.next(); - - String [] str = strs.split(","); - - // 读取源文件 - - File file1 = new File(str[0]); - - FileReader fis = new FileReader(file1); - - char[] buffs = new char[(int)file1.length()]; - - fis.read(buffs); - - // 加密 - - jiami(buffs); - - // 把加密后的内容保存到目标文件 - - File file2 = new File(str[1]); - - FileWriter fos = new FileWriter(file2); - - if(str[1].equals("/test/b.txt")){ - fos.write(buffs,0,(int)file1.length()); - - fis.close(); - - fos.close(); - - System.exit(0); - - } - - fos.write(buffs,0,(int)file1.length()); - - fos.flush(); - - fis.close(); - - fos.close(); - -} - - // 定义加密方法 - - public static void jiami(char[] ch){ - for(int i=0;i='0'&&ch[i]<'9'){ - ch[i]++; - - } - - else if(ch[i]=='9'){ - ch[i]='0'; - - } - - else if((ch[i]>='a'&&ch[i]<'z')||(ch[i]>='A'&&ch[i]<'Z')){ - ch[i]++; - - } - - else if(ch[i]=='z'){ - ch[i]='a'; - - } - - else if(ch[i]=='Z'){ - ch[i]='A'; - - } - - } - - } - - /********** End **********/ - -} -学习-Java输入输出之对象IO流之序列化一个对象 -第1关 -myproject/src/step 1/File Testjava - -import java.io.*; -import java.util.Arrays; -import java.util.Scanner; -public class FileTest { - - public static void main(String[] args) throws IOException, ClassNotFoundException { - // 接收给定的数据 - Scanner scanner = new Scanner(System.in); - String filedir = scanner.next(); - String name = scanner.next(); - int age = scanner.nextInt(); - - // 请在此编写代码 - /********** Begin **********/ - // 创建Student对象 - Student stu = new Student(name,age); - // 给对象属性赋值 - File file = new File(filedir); - // 序列化对象到文件中,并通过反序列化读取文件内容,最后打印对象的所有属性 - ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file)); - - oos.writeObject(stu); - - ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file)); - - System.out.print(ois.readObject()); - /********** End **********/ - - } -} - -myproject/src/step 1/Student.java - -import java.io.Serializable; -public class Student implements Serializable { - public String name; - public int age; - public Student(String name,int age){ - this.name=name; - this.age=age; - } - public String toString (){ - return this.name+"\n"+this.age; - } -} - -学习-Java输入输出之随机IO流之向文件中追加内容 -第1关 - -import java.io.*; -import java.util.Arrays; -import java.util.Scanner; -public class FileTest { - public static void main(String[] args) throws IOException { - // 请在Begin-End间编写完整代码 - /********** Begin **********/ - // 接收给定的字符串 - Scanner scanner = new Scanner(System.in); - String str = scanner.nextLine(); - // 切割字符串 - String[] split = str.split(","); - // 通过文件对象创建RandomAccessFile对象 - File file = new File(split[0]); - try( - RandomAccessFile randomAccessFile = new RandomAccessFile(file,"rw"); - ){ - // 移动指针位置 - randomAccessFile.seek(randomAccessFile.length()); - // 追加给定内容 - randomAccessFile.write(split[1].getBytes()); - // 打印追加内容后的文件指针位置 - System.out.print(randomAccessFile.getFilePointer()); - } - /********** End **********/ - } -} -学习-Java输入输出之数组IO流之将给定整数转换为字符串 -第1关 - -import java.io.*; -import java.util.Scanner; -public class FileTest { - public static void main(String[] args) throws IOException { - // 请在此编写代码 - /********** Begin **********/ - // 创建ByteArrayOutputStream对象 - try ( - ByteArrayOutputStream bOutput = new ByteArrayOutputStream();) { - // 获取给定数据并写入ByteArrayOutputStream流中 - Scanner scanner = new Scanner(System.in); - while(!scanner.hasNext("%")){ - bOutput.write(scanner.nextInt()); - } - // 从流中取出数据 - byte b[] = bOutput.toByteArray(); - // 将数据转换为字符串,并输出结果 - System.out.println(new String(b)); - } - /********** End **********/ - } -} -学习-Java输入输出之数据IO流之向文件中写入数字并读取 -第1关 - -import java.io.*; -import java.util.Arrays; -import java.util.Scanner; -public class FileTest { - public static void main(String[] args) throws IOException { - // 接收给定的数据 - Scanner scanner = new Scanner(System.in); - String filedir = scanner.next(); - int num1 = scanner.nextInt(); - int num2 = scanner.nextInt(); - int num3 = scanner.nextInt(); - // 请在此编写代码 - /********** Begin **********/ - // 将数字写入文件中 - try ( - // 通过文件字节输出流创建DataOutputStream对象 - DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream(filedir)); - // 通过文件字节输入流创建DataInputStream对象 - DataInputStream dataInputStream = new DataInputStream(new FileInputStream(filedir));) { - dataOutputStream.writeInt(num1); - dataOutputStream.writeInt(num2); - dataOutputStream.writeInt(num3); - // 从文件中读取数字,并输出结果 - for(int n=0;n<3;n++){ - int num = dataInputStream.readInt(); - System.out.println("读取的数字为:"+num); - } - } - /********** End **********/ - } -} - - -Java高级特性 - IO流 -第2关 - -package step2; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -public class Task { - public void task() throws IOException{ - /********* Begin *********/ - FileInputStream fs = new FileInputStream("src/step2/input/task.txt"); - byte[] b = new byte[8]; - fs.read(b); - String str = new String(b); - System.out.println(str); - File dir = new File("src/step2/output/"); - if(!dir.exists()){ - dir.mkdir(); - } - FileOutputStream fos = new FileOutputStream("src/step2/output/output.txt"); - String out = "learning practice"; - byte[] outByte = out.getBytes(); //将字符串转换成字节 - fos.write(outByte); //写数据 - //释放资源 - fs.close(); - fos.close(); - /********* End *********/ - } -} -第3关 -package step3; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; - -public class Task { - - public void task() throws IOException{ - /********* Begin *********/ - String file1 = "src/step3/input/input.txt"; //创建文件 - FileReader fr = new FileReader(file1); //实例化 - char[] ch = new char[8]; //创建数组 - fr.read(ch); //将文件的数据读入到数组中(从前到后) - - String file2="src/step3/output/output.txt";//创建文件 - FileWriter fw = new FileWriter(file2); // 实例化 - fw.write(ch); // 读入数组中的数据到文件中(从后到前) - - fr.close(); //关闭流 - fw.flush(); //刷新流 - fw.close(); //关闭流 - /********* End *********/ - } -} -第4关 - -package step4; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; - -public class Task { - - public void task() throws IOException{ - /********* Begin *********/ - FileReader fr = new FileReader("src/step4/input/input.txt"); - FileWriter fw = new FileWriter("src/step4/output/output.txt"); - int len = 0; - char[] cha = new char[1024]; - while ( (len = fr.read(cha) ) != -1) - { - fw.write(cha , 0 , len); - } - fr.close(); - fw.flush(); - fw.close(); - - FileInputStream fs = new FileInputStream("src/step4/input/input.jpg"); - FileOutputStream fo = new FileOutputStream("src/step4/output/output.jpg"); - int le = 0; - byte[] bt = new byte[1024]; - while ( (le = fs.read(bt) ) != -1) - { - fo.write (bt , 0 , le); - } - fs.close(); - fo.flush(); - fo.close(); - /********* End *********/ - } -}