一、创建第一个程序
在文件中创建一个后缀为.java的文本,用记事本打开进行编写
二、编译代码
打开密令进行编译和运行
三、初识JDK
1.jdk有哪些组成
JVM虚拟机:真正运行java程序的地方
核心类库:java自己写好的一些程序,给咱们的程序调用的
开发工具:javac、Java、……
2.java的跨平台是什么含义,java如何实现跨平台
一次编译、处处可用
我们的程序只需要开发一次,就可以在各种安装了JVM的系统平台上运行
四、使用IDEA开发HelloWorld程序
1.使用idea开发java程序的步骤是什么
project - module - package - class
project中可以创建多个module
module中可以创建多个package
package中可以创建多个class
2.创建都是用哪个关键字
New project/module/package/class
3.idea中的java程序是自动编译和执行的,那编译后的class文件在哪
在工程路径下的一个out文件夹里
IEDA常用快捷键
main/psvm、sout、…… 快捷键入相关代码
ctrl+d 复制当前行数据到下一行
ctrl+v 删除所在行、建议用ctrl+x
ctrl+alt+l 格式化代码
alt+shift+上移 上下移动当前代码
ctrl+/,ctrl+shift+/ 对代码进行注释
五、注释
package com.auc.note;
/**
* 这是一个文档注释
*/
public class NoteDemo {
public static void main(String[] args) {
//以下是一个打印语句
System.out.println("开始学习java程序");
/*
这是
一个多行注释
*/
System.out.println("注释");
}
}
六、字面量
package com.auc.literal;
public class LiteralDemo {
public static void main(String[] args) {
// 掌握程序中的书写格式
// 1、整数
System.out.println(666);
//2.字符
System.out.println('a');
System.out.println('0');
System.out.println(' ');
//特殊字符”\n 换行 \t 代表一个tab
System.out.println('中');
System.out.println('\n');
System.out.println('国');
System.out.println('\t');
//3、字符串
System.out.println("我爱你中国");
}
}
七、变量
package com.auc.variable;
public class VariableDemo {
public static void main(String[] args) {
//数据类型 变量名 = 数据;
int age = 23;
System.out.println(age);
System.out.println("……………………");
int number = 666;
System.out.println(number);
System.out.println("--------------");
int age2 = 18;
System.out.println(age2);
age2=19;
System.out.println(age2);
age2 = age2 + 1;
System.out.println(age2);
System.out.println("--------------");
}
}
1、变量是什么,变量的完整定义格式是什么样的
用来存储一个数据的,本质是内存中的一块区域
数据类型 变量名称 = 数据
2、为啥要用变量,变量有啥好处
使用变量记要处理的数据,编写的代码更灵活,管理代码更方便
3、变量有什么特点
变量里装的数据可以被替换
package com.auc.variable;
public class VariableDemo2 {
public static void main(String[] args) {
//1、变量先声明后使用
int age = 18;
System.out.println(age);
//2、变量是什么类型、就应该用来装什么类型的数据
//age=9.8
//3、变量是从定义开始到}截至,定义多个变量的名称不能一样
int a =19;
//int a = 20
//4、定义变量时可以不赋值,但是使用时必须赋值
}
}
使用变量时有哪些注意的点
变量先声明后使用
变量是什么类型、就应该用来装什么类型的数据
变量存在访问范围,同一个范围内,多个变量的名字不能一样
定义变量时可以不赋值,但是使用时必须赋值
八、类型转换
package om.auc.type;
public class TypeDemo {
public static void main(String[] args) {
byte a = 12;
int b = a;
System.out.println(a);
System.out.println(b);
}
}
自动类型转换
package om.auc.type;
public class TypeDemo {
public static void main(String[] args) {
byte a = 10;
int b = 20;
long c =30;
long rs = a+b+c;
System.out.println(rs);
byte b1 = 10;
byte b2 = 80;
int b3 = b1+b2;
System.out.println(b3);
}
}
强制类型转换
public class TypeDemo {
public static void main(String[] args) {
int a=20;
byte b = (byte) a;//ALT+ENTER
System.out.println(b);
double d=99.5;
int m=(int)d;
System.out.println(m);
}
}
九、运算符
算数运算符与连接符
public class TypeDemo {
public static void main(String[] args) {
int a=10;
int b=2;
System.out.println(a * b);
int i=5;
int j=2;
System.out.println(1.0* i / j);
//连接符
int a2=5;
System.out.println("abc" + a2);
System.out.println(a2 + 'a');
}
}
自增自减
public class TypeDemo {
public static void main(String[] args) {
int a=10;
a++;
System.out.println(a);
--a;
System.out.println(a);
System.out.println("-------------------------------------");
int i=10;
int rs=++i;//先加后用
System.out.println(i);
}
}
赋值运算符
public class TypeDemo {
public static void main(String[] args) {
double a=9.5;
double b=520;
a += b;
System.out.println(a);
System.out.println("----------------------------------");
byte x=10;
byte y =30;
x=(byte)(x+y);
System.out.println(x);
}
}
关系运算符
public class TypeDemo {
public static void main(String[] args) {
int a=10;
int b=5;
boolean rs =a>b;
System.out.println(rs);
System.out.println(a >= b);
System.out.println(a==b);
}
}
逻辑运算符
public class TypeDemo {
public static void main(String[] args) {
double size=9.8;
int storage =16;
boolean rs =size >= 6.95 & storage >=8;
System.out.println(rs);
System.out.println(true^false);
System.out.println(false^false);
int i=10;
int j=20;
System.out.println(i>100 && ++j >99);
System.out.println(j);//左边为false右边不执行
int m =10;
int n=10;
System.out.println(m>3 || ++n>40);
System.out.println(n);//左边为true右边不执行
}
}
三元运算符
public class TypeDemo {
public static void main(String[] args) {
double score=98.5;
String rs=score >= 60 ? "成绩及格" : "成绩不及格";
System.out.println(rs);
int a =99;
int b=67;
int max=a>b ? a :b;
System.out.println(max);
}
}
十、流程结构
分支结构
if分支
public class TypeDemo {
public static void main(String[] args) {
double t = 38.9;
if (t > 37) {
System.out.println("leave");
}
double money = 99;
if (money >= 99) {
System.out.println("success");
} else {
System.out.println("faile");
}
int score = 78;
if (score >= 0 && score < 68) {
System.out.println("D");
} else if (score >= 60 && score < 80) {
System.out.println("C");
} else if (score >= 80 && score < 70) {
System.out.println("B");
}else if (score >= 90 && score<100) {
System.out.println("A");
}else {
System.out.println("no");
}
}
}
switch分支
public class TypeDemo {
public static void main(String[] args) {
String week ="Wen";
switch (week){
case "Mon":
System.out.println("yi");
break;
case "Tue":
System.out.println("er");
break;
case "Wen":
System.out.println("san");
break;
case "Tun":
System.out.println("si");
break;
case "Fri":
System.out.println("wu");
break;
default:
System.out.println("faile");
}
}
}
循环结构
for循环
public class TypeDemo {
public static void main(String[] args) {
for (int i=0;i<5;i++){
System.out.println("Hello World");
}
}
}
while循环
public class TypeDemo {
public static void main(String[] args) {
int i=0;
while(i<5){
System.out.println("Hello World");
i++;
}
}
}
do—while循环
public class TypeDemo {
public static void main(String[] args) {
int i = 0;
do {
System.out.println("Hello World");
i++;
}while(i<3);
}
}
循环嵌套
public class TypeDemo {
public static void main(String[] args) {
for (int i = 1 ;i <=3 ; i++) {
for(int j=1;j<=5;j++){
System.out.println("i love you");
}
System.out.println("…………");
}
}
}
random随机函数
package om.auc.type;
import java.util.Random;
public class TypeDemo {
public static void main(String[] args) {
Random r =new Random();
for (int i=1;i<=10;i++) {//ctrl+alt+T
int data=r.nextInt(10);
System.out.println(data);
}
}
}
案例:猜数字游戏
package om.auc.type;
import java.util.Random;
import java.util.Scanner;
public class TypeDemo {
public static void main(String[] args) {
Random r =new Random();
int luckNumber=r.nextInt(100)+1;
Scanner sc=new Scanner(System.in);
while(true){
System.out.println("请输入您猜测的数据:");
int guessNumber=sc.nextInt();
if (guessNumber>luckNumber){
System.out.println("您猜测的数字过大");
} else if (guessNumber<luckNumber) {
System.out.println("您猜测的数字过小");
}else{
System.out.println("恭喜您,猜测成功");
break;
}
}
}
}
十一、 数组
静态数组
public class TypeDemo {
public static void main(String[] args) {
int[] ages=new int[]{12,24,36};
double[] scores=new double[]{89,99.5,59.5};
int[] age2={12,24,36};
int ages3[]=new int[]{12,24,36};
}
}
数组的访问
public class TypeDemo {
public static void main(String[] args) {
int[] arr={12,24,36};
System.out.println(arr[0]);
arr[0]=100;
System.out.println(arr[0]);
System.out.println(arr.length);//获取数组元素个数
System.out.println(arr.length - 1);//最大索引
}
}
遍历数组
public class TypeDemo {
public static void main(String[] args) {
int [] ages={12,24,36};
for (int i = 0; i < ages.length; i++) {
System.out.println(ages[i]);
}
}
}
案例1:计算总销售额
public class TypeDemo {
public static void main(String[] args) {
int [] money={16,26,36,6,100};
int sum=0;
for (int i = 0; i < money.length; i++) {
sum+=money[i];
}
System.out.println("销售总额:"+sum);
}
}
动态初始化数组
public class TypeDemo {
public static void main(String[] args) {
int[] ages = new int[3];
ages[0]=12;
ages[1]=32;
ages[2]=66;
for (int i = 0; i < ages.length; i++) {
System.out.println(ages[i]);
}
}
}
案例2:录入分数并求出平均分
public class TypeDemo {
public static void main(String[] args) {
double[] scores=new double[6];
Scanner sc=new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.println("请输入当前第"+(i+1)+"个评委的分数:");
double score=sc.nextDouble();
scores[i]=score;
}
double sum=0;
for (int i = 0; i < scores.length; i++) {
sum+=scores[i];
}
System.out.println("选手最终得分是:"+ sum / scores.length);
}
}
案例3:求最大值
public class TypeDemo {
public static void main(String[] args) {
int[] faceScores={15,9000,10000,20000,9500,-5};
int max=faceScores[0];
for (int i = 1; i < faceScores.length ; i++) {
if(faceScores[i]>max){
max=faceScores[i];
}
}
System.out.println("最高分是:"+max);
}
}
案例4:数组反转
public class TypeDemo {
public static void main(String[] args) {
int[] arr={10,20,30,40,50};
for (int i = 0,j= arr.length-1; i <j ; i++,j--) {
int temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i] + " ");
}
}
}
案例5:随即排名
public class TypeDemo {
public static void main(String[] args) {
int[] codes=new int[5];
Scanner sc=new Scanner(System.in);
for (int i = 0; i < codes.length; i++) {
System.out.println("请输入当前第"+(i+1)+"个员工的工号:");
int code=sc.nextInt();
codes[i]=code;}
Random r=new Random();
for (int i = 0; i < codes.length; i++) {
int index=r.nextInt(codes.length);
int temp=codes[index];
codes[index]=codes[i];
codes[i]=temp;
}
for (int i = 0; i < codes.length; i++) {
System.out.println(codes[i]+" ");
}
}
}
十二、方法
public class Demo2 {
public static void main(String[] args) {
printHelloWorld();
}
public static void printHelloWorld(){
for (int i = 1; i <=3 ; i++) {
System.out.println("HelloWorld");
}
}
}
案例6:求1-n的和
public class Demo2 {
public static void main(String[] args) {
int rs =add(100);
System.out.println("1-100的和:"+rs);
}
public static int add(int n){
int sum=0;
for (int i = 1; i <=n ; i++) {
sum+=i;
}
return sum;
}
}
基本类型的参数传递
public class Demo2 {
public static void main(String[] args) {
int a=10;
change(a);
System.out.println("main:" + a);
}
public static void change(int a){
System.out.println("change1:" + a);
a=20;
System.out.println("change2:" + a);
}
}
引用类型的参数传递
public class Demo2 {
public static void main(String[] args) {
int[] arrs=new int[]{10,20,30};
change(arrs);
System.out.println("main:" + arrs[1]);
}
public static void change(int[] arrs){
System.out.println("方法内1:" + arrs[1]);
arrs[1]=222;
System.out.println("方法内2:" + arrs[1]);
}
}
案例7:打印int类型的数组内容
public class Demo2 {
public static void main(String[] args) {
int[] arr={10,30,50,70};
printArray(arr);
}
public static void printArray(int[] arr){
System.out.print("[");
for (int i = 0; i < arr.length ; i++) {
if(i== arr.length-1){
System.out.print(arr[i]);
}else {
System.out.print(arr[i]+",");
}
}
System.out.print("]");
}
}
案例8:比较两个int类型的数组是否一样,返回true或者false
public class Demo2 {
public static void main(String[] args) {
int[] arr1=null;
int[] arr2=null;
System.out.println(equals(arr1, arr2));
}
public static boolean equals(int[] arr1,int[] arr2 ) {
if (arr1 == null && arr2 == null) {
return true;
}
if(arr1==null || arr2==null){
return false;
}
if(arr1.length != arr2.length){
return false;
}
for (int i = 0; i < arr1.length; i++) {
if(arr1[i] != arr2[i]){
return false;
}
}
return true;
}
}
方法重载
public class Demo2 {
public static void main(String[] args) {
test();
test(100);
}
public static void test(){
System.out.println("=====test1====");
}
public static void test(int a){
System.out.println("=====test2=====" + a);
}
int test(int a,int b){
return a+b;
}
}
案例9:买飞机票
public class Demo2 {
public static void main(String[] args) {
double price=calculate(1000,8,"经济舱");
System.out.println("优惠价:" + price);
}
public static double calculate(double price,int month,String type){
if(month>=5 && month<=10){
switch (type){
case "头等舱":
price *= 0.9;
break;
case "经济舱":
price *=0.85;
break;
}
}else {
switch (type){
case "头等舱":
price *= 0.7;
break;
case "经济舱":
price *=0.65;
break;
}
}
return price;
}
}
案例10:开发验证码
public class Demo2 {
public static void main(String[] args) {
System.out.println(createCode(5));
}
public static String createCode(int n) {
Random r = new Random();
String code = " ";
for (int i = 0; i < n; i++) {
int type = r.nextInt(3);
switch (type) {
case 0:
code += r.nextInt(10);
break;
case 1:
char ch1 = (char) (r.nextInt(26) + 65);
code += ch1;
break;
case 2:
char ch2 = (char) (r.nextInt(26) + 97);
code += ch2;
break;
}
}
return code;
}
}
案例11:评委打分
public class Demo2 {
public static void main(String[] args) {
System.out.println("当前选手的得分是:"+getAverageScore(6));
}
public static double getAverageScore(int number){
int[] scores=new int[number];
Scanner sc=new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.println(("请录入第"+(i+1)+"个评委的分数:"));
int score=sc.nextInt();
scores[i]=score;
}
int sum=0;
int max=scores[0];
int min=scores[0];
for (int i = 0; i < scores.length; i++) {
int score=scores[i];
sum+=score;
if(score>max){
max=score;
}
if(score<min){
min=score;
}
}
return 1.0*(sum-min-max)/(number-2);
}
}
案例12:数字加密
public class Demo2 {
public static void main(String[] args) {
System.out.println("加密后的结果是:"+encrpt(1983));
}
public static String encrpt(int number){
int[] numbers=split(number);
for (int i = 0; i < numbers.length; i++) {
numbers[i]=(numbers[i]+5)%10;
}
reverse(numbers);
String data="";
for (int i = 0; i < numbers.length; i++) {
data+=numbers[i];
}
return data;
}
private static void reverse(int[] numbers) {
for (int i = 0,j=numbers.length-1; i <j ; i++,j--) {
int temp=numbers[j];
numbers[j]=numbers[i];
numbers[i]=temp;
}
}
public static int[] split(int number){
int [] numbers=new int[4];
numbers[0]=number/1000;
numbers[1]=(number/100)%10;
numbers[2]=(number/10)%10;
numbers[3]=number%10;
return numbers;
}
}
案例13:数组拷贝
public class Demo2 {
public static void main(String[] args) {
int[] arr={11,12,33};
int[] arr2=copy(arr);
printArray(arr2);
}
public static void printArray(int[] arr){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(i == arr.length - 1?arr[i]:arr[i]+ ",");
}
System.out.print("]");
}
public static int[] copy(int[] arr){
int[] arr2=new int[arr.length];
for (int i = 0; i < arr.length; i++) {
arr2[i]=arr[i];
}
return arr2;
}
}
案例14:抢红包
public class Demo2 {
public static void main(String[] args) {
int[] moneys={9,666,108,520,99999};
start(moneys);
}
public static void start(int[] moneys){
Scanner sc=new Scanner(System.in);
Random r=new Random();
for (int i = 0; i <5 ; i++) {
System.out.println("请您输入任意内容进行抽奖:");
sc.next();
while (true){
int index=r.nextInt(moneys.length);
int money=moneys[index];
if(money!=0){
System.out.println("恭喜你,抽中了红包:"+money);
moneys[index]=0;
break;
}
}
}
System.out.println("活动结束");
}
}
案例15:找素数
public class Demo2 {
public static void main(String[] args) {
System.out.println("当前的素数个数是:"+search(101, 200));
}
public static int search(int start,int end){
int count=0;
for (int i = start; i <end ; i++) {
boolean flag=true;
for (int j = 2; j <i/2 ; j++) {
if(i%j==0){
flag=false;
break;
}
}
if(flag){
System.out.println(i);
count++;
}
}
return count;
}
}
方法二:
public class Demo2 {
public static void main(String[] args) {
int count=0;
OUT:
for (int i = 101; i <200; i++) {
boolean flag=true;
for (int j = 2; j <i/2 ; j++) {
if(i%j==0){
continue OUT;
}
}
count++;
System.out.println(i);
}
System.out.println("个数是:"+count);
}
}
案例16:打印乘法表
public class Demo2 {
public static void main(String[] args) {
for (int i = 1; i <=9 ; i++) {
for (int j = 1; j <=i ; j++) {
System.out.print(j+"X"+i+"="+(j*i)+"\t");
}
System.out.println();
}
}
}
案例17:打印三角形
public class Demo2 {
public static void main(String[] args) {
int n = 4;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= (n -i); j++) {
System.out.print(" ");
}
for (int j = 1; j <= (2 * i -1); j++) {
System.out.print("*");
}
System.out.println();
}
}
}
案例18:双色球
package com.auc;
import java.util.Random;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
int[] userSelectNumbers = userSelectNumber();
System.out.println("您投注的号码:");
printArray(userSelectNumbers);
int[] luckNumbers = createLuckNumbers();
System.out.println("中奖号码:");
printArray(luckNumbers);
judge(userSelectNumbers,luckNumbers);
}
public static void printArray(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ",");
}
System.out.println("]");
}
public static int[] userSelectNumber() {
int[] numbers = new int[7];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < numbers.length - 1; i++) {
while (true) {
System.out.println("请您输入第" + (i + 1) + "个红色号码(1-33之间不能重复):");
int number = sc.nextInt();
if (number < 1 || number > 33) {
System.out.println("对不起,您输入的红色号码不在1-33之间,请确认!");
} else {
if (exist(numbers, number)) {
System.out.println("对不起,您输入的红球号码前面选择过滤,请确认!");
} else {
numbers[i] = number;
break;
}
}
}
}
while (true) {
System.out.println("请您输入最后1个蓝球号码(1-16):");
int number = sc.nextInt();
if (number < 1 || number > 16) {
System.out.println("对不起,您输入的蓝球号码范围不对!");
} else {
numbers[6] = number;
break;
}
}
return numbers;
}
private static boolean exist(int[] numbers, int number) {
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] == number) {
return true;
}
}
return false;
}
public static int[] createLuckNumbers() {
int[] numbers = new int[7];
Random r = new Random();
for (int i = 0; i < numbers.length; i++) {
while (true) {
int number = r.nextInt(33) + 1;
if (!exist(numbers, number)) {
numbers[i] = number;
break;
}
}
}
numbers[6] = r.nextInt(16) + 1;
return numbers;
}
public static void judge(int[] userNumbers, int[] luckNumbers) {
int redCount = 0;
int blueCount = 0;
for (int i = 0; i < userNumbers.length - 1; i++) {
for (int i1 = 0; i1 < luckNumbers.length; i1++) {
if (userNumbers[i] == luckNumbers[i1]) {
redCount++;
break;
}
}
}
blueCount = userNumbers[6] == luckNumbers[6] ? 1 : 0;
System.out.println("您命中的红球数量是:" + redCount);
System.out.println("您命中的蓝球数量是:" + blueCount);
if (redCount == 6 && blueCount == 1) {
System.out.println("恭喜你,中奖1000万");
} else if (redCount == 6 && blueCount == 0) {
System.out.println("恭喜你,中奖100万");
} else if (redCount == 5 && blueCount == 1) {
System.out.println("恭喜你,中奖10万");
} else if (redCount == 5 && blueCount == 0 || redCount == 4 && blueCount == 1) {
System.out.println("恭喜你,中奖1万");
} else if (redCount == 4 && blueCount == 0 || redCount == 3 && blueCount == 1) {
System.out.println("恭喜你,中奖1000");
} else if (redCount < 3 && blueCount == 1) {
System.out.println("恭喜你,中奖100");
} else {
System.out.println("感谢您对福利事业的贡献");
}
}
}
十三、面向对象的编程
package com.auc;
public class Student {
String name;
double chinese;
double math;
public void printTotalScore(){
System.out.println(name+"的总成绩是:"+(chinese+math));
}
public void printAverageScore(){
System.out.println(name+"的平均成绩是:"+(chinese+math)/2.0);
}
}
package com.auc;
public class Test {
public static void main(String[] args) {
Student s1=new Student();
s1.name="au";
s1.math=100;
s1.chinese=110;
s1.printTotalScore();
s1.printAverageScore();
}
}
this
public class Student {
public void printThis(){
System.out.println(this);
}
}
public class Test {
public static void main(String[] args) {
Student s1=new Student();
System.out.println(s1);
s1.printThis();
}
}
this:用来解决对象的成员变量与方法内部变量的名称一样时,导致访问冲突问题的
构造器
public class Student {
String name;
double score;
public Student(){
System.out.println("无参数构造器被触发执行了");
}
public Student(String name,double score){
System.out.println("有参数构造器被触发执行了");
this.name=name;
this.score=score;
}
}
public class Test {
public static void main(String[] args) {
Student s=new Student();
Student s2=new Student("au",90);
System.out.println(s2.name);
System.out.println(s2.score);
}
}
封装
public class Student {
private double score;
public void setScore(double score){
if ((score >= 0 && score <= 100)) {
this.score=score;
}else{
System.out.println("数据非法");
}
}
public double getScore(){
return score;
}
public void printPass(){
System.out.println(score>=60?"成绩及格":"成绩不及格");
}
}
public class Test {
public static void main(String[] args) {
Student s1=new Student();
s1.setScore(99);
System.out.println(s1.getScore());
}
}
实体JavaBean
public class Student {
private String name;
private double score;
public Student() {
}
public Student(String name, double score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}
public class Test {
public static void main(String[] args) {
Student s1=new Student();
s1.setName("au");
s1.setScore(99);
System.out.println(s1.getName());
System.out.println(s1.getScore());
}
}
案例19:模拟电影信息系统
package com.auc;
public class Student {
private int id;
private String name;
private double price;
private double score;
private String director;
private String actor;
private String info;
public Student(int i, String 水门桥, double v, double v1, String 徐克, String 吴京, String s) {
}
public Student(int id, double price, double score, String director, String actor, String info) {
this.id = id;
this.name= name;
this.price = price;
this.score = score;
this.director = director;
this.actor = actor;
this.info = info;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
public String getActor() {
return actor;
}
public void setActor(String actor) {
this.actor = actor;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
public class MovieOperator {
private Student[] movies;
public MovieOperator(Student[] movies){
this.movies=movies;
}
public void printAllMovies(){
System.out.println("-----------系统全部电影信息如下:----------");
for (int i = 0; i < movies.length; i++) {
Student m=movies[i];
System.out.println("编号:" + m.getId());
System.out.println("名称:" + m.getName());
System.out.println("价格:" + m.getPrice());
System.out.println("----------------------");
}
}
public void searchMovieById(int id){
for (int i = 0; i < movies.length; i++) {
Student m = movies[i];
if(m.getId()==id){
System.out.println("该电影详情如下:");
System.out.println("编号:" + m.getId());
System.out.println("名称:" + m.getName());
System.out.println("价格:" + m.getPrice());
System.out.println("得分:" + m.getScore());
System.out.println("导演:" + m.getDirector());
System.out.println("主演:" + m.getActor());
System.out.println("其他信息:" + m.getInfo());
return;
}
}
System.out.println("没有该电影信息");
}
}
public class Test {
public static void main(String[] args) {
Student[] movies=new Student[4];
movies[0]=new Student(1,"水门桥",38.9,9.4,"徐克","吴京","12万人想来看");
movies[1]=new Student(2,"消失的他",48.9,9.8,"Ard","...","22万人想来看");
movies[2]=new Student(3,"复仇者联盟",58.9,9.7,"Brg","**","32万人想来看");
movies[3]=new Student(4,"阿凡达",46.9,9.6,"Cdf","^^^","42万人想来看");
MovieOperator operator=new MovieOperator(movies);
operator.printAllMovies();;
operator.searchMovieById(1);
}
}
十四、常用API
包
package com.ajc.pkg;
import itcast.Demo1;
import java.util.Random;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Demo d=new Demo();
d.print();
Demo1 d2=new Demo1();
d2.print();
Scanner sc=new Scanner(System.in);
Random r=new Random();
}
}
package itcast;
public class Demo1 {
public void print() {
System.out.println("Hello World2");
}
}
package com.ajc.pkg;
public class Demo {
public void print(){
System.out.println("Hello World");
}
}
String
public class Demo {
public static void main(String[] args) {
String name="itauc";
System.out.println(name);
String rs1=new String();
System.out.println(rs1);
String rs2=new String("itauc");
System.out.println(rs2);
char[] chars={'a','u','c'};
String rs3=new String(chars);
System.out.println(rs3);
byte[] bytes={97,98,99};
String rs4=new String(bytes);
System.out.println(rs4);
}
}
操作字符串数据的常用方法
public class Demo {
public static void main(String[] args) {
String name="itauc";
System.out.println(name.length());
char c=name.charAt(1);
System.out.println(c);
for (int i = 0; i < name.length(); i++) {
char ch=name.charAt(i);
System.out.println(ch);
}
char[] chars=name.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
String s1=new String("au");
String s2=new String("au");
System.out.println(s1.equals(s2));
String c1="34AeFg";
String c2="34aEfG";
System.out.println(c1.equals(c2));
System.out.println(c1.equalsIgnoreCase(c2));
String s3="i love you au";
String rs=s3.substring(2,6);
System.out.println(rs);
String rs2=s3.substring(2);
System.out.println(rs2);
String info="fuck you!!";
String rs3=info.replace("fuck","**");
System.out.println(rs3);
}
}
案例20:完成用户登录
public class StringTest4 {
public static void main(String[] args) {
for (int i=0;i<3;i++) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入登录名称:");
String loginName=sc.next();
System.out.println("请输入登录密码:");
String passWord=sc.next();
boolean rs=login(loginName,passWord);
if(rs){
System.out.println("恭喜您,欢迎进入系统……");
break;
}else {
System.out.println("登录名或者密码错误,请您确认……");
}
}
}
public static boolean login(String loginName,String passWord){
String okLoginName="auc";
String okPassWord="123456";
if(okLoginName.equals(loginName)&& okPassWord.equals(passWord)){
return true;
}else {
return false;
}
}
}
案例21:使用String来开发验证码
public class StringTest4 {
public static void main(String[] args) {
System.out.println(createCode(4));
System.out.println(createCode(6));
}
public static String createCode(int n){
String code="";
String data="abcdefghijklmnopqrlstuvwxyABCDEFGHIJKLMNOPQRLSTUVWYXZz123456789";
Random r=new Random();
for (int i = 0; i <n ; i++) {
int index=r.nextInt(data.length());
code+=data.charAt(index);
}
return code;
}
}
ArrayList
public class ArryListDemo1 {
public static void main(String[] args){
ArrayList<String> list=new ArrayList<String>();
list.add("au");
list.add("666");
list.add("java");
System.out.println(list);
list.add(1,"MySQL");
System.out.println(list);
String rs=list.get(1);
System.out.println(rs);
System.out.println(list.size());
System.out.println(list.remove(1));
System.out.println(list);
System.out.println(list.remove("au"));
System.out.println(list);
System.out.println(list.set(1, "auc"));
System.out.println(list);
}
}
案例22:找出某些数据并成功删除
public class ArryListDemo1 {
public static void main(String[] args){
ArrayList<String> list=new ArrayList<>();
list.add("java入门");
list.add("宁夏枸杞");
list.add("黑枸杞");
list.add("人字拖");
list.add("特级枸杞");
list.add("枸杞子");
System.out.println(list);
for (int i = 0; i < list.size(); i++) {
String ele=list.get(i);
if(ele.contains("枸杞")){
list.remove(ele);
i--;
}
}
System.out.println(list);
}
}
案例23:模仿外卖系统中的商家系统
package com.ajc.pkg.arrylist;
import java.util.ArrayList;
import java.util.List;
public class ArryListDemo1 {
public static void main(String[] args){
FoodOperator operator=new FoodOperator();
operator.start();
}
}
package com.ajc.pkg.arrylist;
import java.util.ArrayList;
import java.util.Scanner;
public class FoodOperator {
private ArrayList<Food> foodList=new ArrayList<>();
public void addFood(){
Food f=new Food();
Scanner sc=new Scanner(System.in);
System.out.println("请输入该菜品名称:");
String name=sc.next();
f.setName(name);
System.out.println("请输入该菜品价格:");
double price=sc.nextDouble();
f.setPrice(price);
System.out.println("请输入该菜品描述:");
String desc=sc.next();
f.setDesc(desc);
foodList.add(f);
System.out.println("上架成功!");
}
public void showAllFoods(){
if(foodList.size()==0){
System.out.println("无菜品");
return;
}
for (int i = 0; i < foodList.size(); i++) {
Food f=foodList.get(i);
System.out.println(f.getName());
System.out.println(f.getPrice());
System.out.println(f.getDesc());
System.out.println("----------------------------------");
}
}
public void start(){
while (true) {
System.out.println("请选择功能");
System.out.println("1、上架菜品");
System.out.println("2、展示菜品");
System.out.println("3、退出");
Scanner sc=new Scanner(System.in);
System.out.println("请选择您的操作");
String command=sc.next();
switch (command){
case "1":
addFood();
break;
case "2":
showAllFoods();
break;
case "3":
System.out.println("下次再来!");
return;
default:
System.out.println("您输入的命令不存在!");
}
}
}
}
package com.ajc.pkg.arrylist;
public class Food {
private String name;
private double price;
private String desc;
public Food() {
}
public Food(String name, double price, String desc) {
this.name = name;
this.price= price;
this.desc = desc;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
案例24:模拟ATM系统
package com.auc;
public class Test {
public static void main(String[] args) {
ATM atm=new ATM();
atm.start();
}
}
package com.auc;
public class Account {
private String cardId;
private String userName;
private char sex;
private String passWord;
private double money;
private double limit;
public String getCardId() {
return cardId;
}
public void setCardId(String cardId) {
this.cardId = cardId;
}
public String getUserName() {
return userName+(sex=='男'?"先生":"女士");
}
public void setUserName(String userName) {
this.userName = userName;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public double getLimit() {
return limit;
}
public void setLimit(double limit) {
this.limit = limit;
}
}
package com.auc;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class ATM {
private ArrayList<Account> accounts = new ArrayList<>();
private Scanner sc = new Scanner(System.in);
private Account loginAcc;
public void start() {
while (true) {
System.out.println("=======欢迎您进入到了ATM系统======");
System.out.println("1、用户登录");
System.out.println("2、用户开户");
System.out.println("请选择:");
int command = sc.nextInt();
switch (command) {
case 1:
login();
break;
case 2:
createAccount();
break;
default:
System.out.println("没有该操作");
}
}
}
private void login() {
System.out.println("===系统登录===");
if (accounts.size() == 0) {
System.out.println("当前系统中无任何账户,请先开户再来登录~~");
return;
}
while (true) {
System.out.println("请您输入您的登录卡号:");
String cardId = sc.next();
Account acc = getAccountByCardId(cardId);
if (acc == null) {
System.out.println("您输入的登录卡号不存在,请确认~~");
} else {
while (true) {
System.out.println("请您输入登录密码:");
String passWord = sc.next();
if (acc.getPassWord().equals(passWord)) {
loginAcc = acc;
System.out.println("恭喜您:" + acc.getUserName() + "成功登录了系统,您的卡号是:" + acc.getCardId());
showUserCommand();
return;
} else {
System.out.println("您输入的密码不正确,请确认~~");
}
}
}
}
}
private void showUserCommand() {
while (true) {
System.out.println(loginAcc.getUserName() + "您可以选择如下功能进行账户的处理===");
System.out.println("1、查询账户");
System.out.println("2、存款");
System.out.println("3、取款");
System.out.println("4、转账");
System.out.println("5、密码修改");
System.out.println("6、退出");
System.out.println("7、注销当前账户");
System.out.println("请选择:");
int command = sc.nextInt();
switch (command) {
case 1:
showLoginAccount();
break;
case 2:
deposiMoney();
break;
case 3:
drawMoney();
break;
case 4:
transferMoney();
break;
case 5:
updatePassWord();
return;
case 6:
System.out.println(loginAcc.getUserName() + "您退出系统成功!");
return;
case 7:
if (deleteAccount()) {
return;
}
break;
default:
System.out.println("您当前选择的操作是不存在的,请确认~~");
}
}
}
private void updatePassWord() {
System.out.println("==账户密码修改操作==");
while (true) {
System.out.println("请您输入当前账户的密码:");
String passWord=sc.next();
if(loginAcc.getPassWord().equals(passWord)){
while (true) {
System.out.println("请您输入新密码:");
String newPAssWord=sc.next();
System.out.println("请再次确认您的密码:");
String okPassWord=sc.next();
if(okPassWord.equals(newPAssWord)){
loginAcc.setPassWord((okPassWord));
System.out.println("恭喜您,您的密码修改成功!");
return;
}else {
System.out.println("您输入的2次密码不一致~~");
}
}
}else {
System.out.println("您当前输入的密码不正确~~");
}
}
}
private boolean deleteAccount() {
System.out.println("==进行销户操作==");
System.out.println("请问您确认销户吗?y/n");
String command = sc.next();
switch (command) {
case "y":
if (loginAcc.getMoney() == 0) {
accounts.remove(loginAcc);
System.out.println("您好,您的账户已经成功销户~~");
return true;
} else {
System.out.println("对不起,您的账户中存在金额,不允许销户~~");
}
default:
System.out.println("好的,您的账户保留!");
return false;
}
}
private void transferMoney() {
System.out.println("==用户转账==");
if(accounts.size()<2){
System.out.println("当前系统中只有你一个账户,无法为其他账户转账~~");
return;
}
if(loginAcc.getMoney()==0){
System.out.println("您自己都没钱,就别转了~~");
return;
}
while (true) {
System.out.println("请您输入对方的卡号:");
String cardId=sc.next();
Account acc=getAccountByCardId(cardId);
if(acc==null){
System.out.println("您输入的对方的卡号不存在~~");
}else {
String name="*"+acc.getUserName().substring(1);
System.out.println("请您输入【"+name+"】的姓氏:");
String preName=sc.next();
if(acc.getUserName().startsWith(preName)){
while (true) {
System.out.println("请您输入转账给对方的金额:");
double money=sc.nextDouble();
if(loginAcc.getMoney()>=money){
loginAcc.setMoney((loginAcc.getMoney())-money);
acc.setMoney(acc.getMoney()+money);
return;
}else {
System.out.println("您金额不足,无法给对方转这么多钱,最多可转:"+loginAcc.getMoney());
}
}
}else {
System.out.println("对不起,您输入的姓氏错误~~");
}
}
}
}
private void drawMoney() {
System.out.println("==取钱操作==");
if(loginAcc.getMoney()<100){
System.out.println("您的账户余额不足100元,不允许取钱~~");
return;
}
while (true) {
System.out.println("请您输入取款金额:");
double money=sc.nextDouble();
if(loginAcc.getMoney()>=money){
if(money>loginAcc.getLimit()){
System.out.println("您当前取款金额超过了每次限额,您每次最多可取:"+loginAcc.getLimit());
}else {
loginAcc.setMoney(loginAcc.getMoney()-money);
System.out.println("您取款:"+money+"成功,取款后您剩余:"+loginAcc.getMoney());
break;
}
}else {
System.out.println("余额不足,您的账户中的余额是:"+loginAcc.getMoney());
}
}
}
private void deposiMoney() {
System.out.println("==存钱操作==");
System.out.println("请您输入存款金额:");
double money = sc.nextDouble();
loginAcc.setMoney(loginAcc.getMoney()+money);
System.out.println("恭喜您,您存钱:"+money+"成功,存款后余额是:"+loginAcc.getMoney());
}
private void showLoginAccount(){
System.out.println("==当前您的账户信息如下==");
System.out.println("卡号"+loginAcc.getCardId());
System.out.println("户主:"+loginAcc.getUserName());
System.out.println("性别:"+loginAcc.getSex());
System.out.println("余额:"+loginAcc.getMoney());
System.out.println("每次取现额度:"+loginAcc.getLimit());
}
private void createAccount() {
System.out.println("===系统开户操作===");
Account acc = new Account();
System.out.println("请您输入您的账户名称:");
String name = sc.next();
acc.setUserName(name);
while (true) {
System.out.println("请输入您的性别:");
char sex = sc.next().charAt(0);
if (sex == '男' || sex == '女') {
acc.setSex(sex);
break;
} else {
System.out.println("您输入的性别有误~只能是男或着女~");
}
}
while (true) {
System.out.println("请您输入您的账户密码:");
String passWord = sc.next();
System.out.println("请您输入您的确认密码:");
String okPassWord = sc.next();
if (okPassWord.equals(passWord)) {
acc.setPassWord(okPassWord);
break;
} else {
System.out.println("您输入的2次密码不一致,请您确认~~");
}
}
System.out.println("请您输入您的取现额度:");
double limit = sc.nextDouble();
acc.setLimit((limit));
String newCardId=creatCardId();
acc.setCardId(newCardId);
accounts.add(acc);
System.out.println("恭喜您," + acc.getUserName() + "开户成功,您的卡号是:"+acc.getCardId());
}
private String creatCardId() {
while (true) {
String cardId = "";
Random r = new Random();
for (int i = 0; i < 8; i++) {
int data = r.nextInt(10);
cardId += data;
}
Account acc = getAccountByCardId(cardId);
if (acc == null) {
return cardId;
}
}
}
private Account getAccountByCardId(String cardId){
for (int i = 0; i < accounts.size(); i++) {
Account acc=accounts.get(i);
if(acc.getCardId().equals(cardId)){
return acc;
}
}
return null;
}
}
十五、static
public class Test {
public static void main(String[] args) {
Student.name="au";
Student s1=new Student();
s1.name="猪猪侠";
System.out.println(s1.name);
System.out.println(Student.name);
Student s2=new Student();
s1.age=23;
s2.age=18;
System.out.println(s1.age);
}
}
public class Student {
static String name;
int age;
}
类变量应用场景
public class Student {
public static int number;
public Student(){
Student.number++;
}
}
public class Test {
public static void main(String[] args) {
Student s1=new Student();
Student s2=new Student();
Student s3=new Student();
Student s4=new Student();
System.out.println(Student.number);
}
}
static修饰成员变量的方法
public class Student {
double score;
public static void printHelloWorld(){
System.out.println("HelloWorld");
}
public void printPass(){
System.out.println("成绩:"+
(score>=60?"及格":"不及格"));
}
}
public class Test {
public static void main(String[] args) {
Student.printHelloWorld();
Student s=new Student();
s.printPass();
}
}
static代码块
public class Student {
static int number=80;
static String schoolName;
static {
System.out.println("静态代码块执行力~~");
schoolName="au";
}
{
System.out.println("实例代码块执行力~~");
}
public Student(){
System.out.println("无参数构造器执行力~~");
}
public Student(String name){
System.out.println("与参数构造器执行力~~");
}
}
public class Test {
public static void main(String[] args) {
System.out.println(Student.number);
System.out.println(Student.number);
System.out.println(Student.schoolName);
System.out.println("-------------------------------");
Student s1=new Student();
Student s2=new Student("auc");
}
}
static单例设计模式
public class Student {
private static Student a=new Student();
private Student(){
}
public static Student getObject(){
return a;
}
}
public class Test {
public static void main(String[] args) {
Student a1=Student.getObject();
Student a2=Student.getObject();
System.out.println(a1);
System.out.println(a2);
}
}
懒汉式单例设计模式
package com.gaodemo;
import java.nio.file.attribute.UserPrincipal;
public class Student {
private static Student b;
private Student(){
}
public static Student getInstance(){
if(b==null){
b=new Student();
}
return b;
}
}
public class Test {
public static void main(String[] args) {
Student b1=Student.getInstance();
Student b2=Student.getInstance();
System.out.println(b1==b2);
}
}
十六、继承
public class Test {
public static void main(String[] args) {
B b=new B();
System.out.println(b.i);
b.print1();
}
}
public class A {
public int i;
public void print1(){
System.out.println("===print1===");
}
private int j;
private void print2(){
System.out.println("===print2===");
}
}
public class B extends A{
public void print3(){
System.out.println(i);
print1();
}
}
继承的好处
public class Test {
public static void main(String[] args) {
B t=new B();
t.setName("au");
t.setSkill("javsSpring");
System.out.println(t.getName());
System.out.println(t.getSkill());
t.printInfo();
}
}
public class A {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class B extends A{
private String skill;
public String getSkill() {
return skill;
}
public void setSkill(String skill) {
this.skill = skill;
}
public void printInfo(){
System.out.println(getName()+"具备的技能:"+skill);
}
}
单继承
public class Test {
public static void main(String[] args) {
}
}
class A{}
class B{}
class D extends B{}
Object
public class Test {
public static void main(String[] args) {
A a=new A();
B b=new B();
}
}
class A{}
class B{}
class D extends B{}
方法重写
public class Test {
public static void main(String[] args) {
B b=new B();
b.print1();
b.print2(2,3);
}
}
public class A {
public void print1(){
System.out.println("111");
}
public void print2(int a,int b){
System.out.println("1111111");
}
}
public class B extends A{
public void print1(){
System.out.println("666");
}
@Override
public void print2(int a,int b){
System.out.println("66666");
}
}
子类中访问其他成员的特点
public class Test {
public static void main(String[] args) {
B b=new B();
b.showNamw();
b.showMethod();
}
}
public class A {
String name="父类名字";
public void print1(){
System.out.println("==父类的print1方法执行==");
}
}
public class B extends A{
String name="子类名称";
public void showNamw(){
String name="局部名称";
System.out.println(name);
System.out.println(this.name);
System.out.println(super.name);
}
@Override
public void print1(){
System.out.println("==子类的print1方法执行了==");
}
public void showMethod(){
print1();
super.print1();
}
}
子类构造器的特点
class F{
public F(){
System.out.println("===父类F的 无参数构造器 执行力===");
}
}
class Z extends F {
public Z() {
System.out.println("===子类F的 无参数构造器 执行力===");
}
public Z(String name) {
System.out.println("===子类F的 有参数构造器 执行力===");
}
public static class Test {
public static void main(String[] args) {
Z z = new Z();
Z z2 = new Z("au");
}
}
}
子类构造器调用父类构造器的应用场景
public class Test2 {
public static void main(String[] args){
Teacher t=new Teacher("au",31,"Java");
System.out.println(t.getName());
System.out.println(t.getAge());
System.out.println(t.getSkill());
}
}
class Teacher extends People{
private String skill;
public Teacher(String name,int age,String skill){
super(name,age);
this.skill=skill;
}
public String getSkill() {
return skill;
}
public void setSkill(String skill) {
this.skill = skill;
}
}
class People{
private String name;
private int age;
public People() {
}
public People(String name, int age) {
this.name = name;
this.age = 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;
}
}