自学补一下java基础
跟着视频学习,少部分图片截取自视频作者
自学视频地址
IDEA中创建java工程File→new project→Empty Project
选择对应的Java环境配置即可
标识符
标识符的命名只能以大小写字母,&,_,为开头命名
String Hello = "123"; String hello = "123"; String &hello = "123"; String _hello = "123";java的数据类型
- 基本类型(primitive type)
- 数值类型
- 整数类型
- byte 一个字节
- short 两个字节
- int 四个字节
- long 八个字节
- 浮点类型
- float 四个字节
- double 八个字节
- 字符类型
- char
- 整数类型
- boolean类型:只有true和false
- 数值类型
- 引用类型(reference type)
- 类
- 接口
- 数组
-
类变量
static 定义
类中的方法可以直接使用用
-
实例变量
定义时候可以不用赋初值,有默认值
从属于对象,类中各个方法可调用使用(先引用类名,调用变量)
-
局部变量
方法内部定义和使用
必须初始化
final来定义不变的量,变量名称全部大写
final FN = "10"命名规范
java doc命令用于生成自己的ApI文档
public class Doc {
String name;
public String test(String name)throws Exception{
return name;
}
}
执行代码
javadoc -encoding UTF-8 -charset UTF-8 Doc.javaJava process control 流程控制
Scanner类
通过Scanner类的next() 与nextLine() 方法获取输入的字符串,
用hasNext() 与hasNextLine() 方法判断是否还有输入的数据。
-
next()方法,可以输入不带空格的字符串,只读取到空格之前的字符。
Scanner scanner = new Scanner(Syetem.in); String str = scanner.next(); System.out.println("输入的字符为:"+str); -
nextLine()方法,读取字符直到回车为止。
System.out.printf("请输入:"); String str = scanner.nextLine(); System.out.println("输入的内容为:"+str); -
hasNext() 方法会判断接下来是否有非空字符,有则返回true,否则返回false。
-
hasNextLine() 方法会根据行匹配模式下去判断接下里是否有一行(包括空),有则返回true,否则返回false。
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("======================================================");
//普通方法输入
System.out.printf("请输入:");
String str = scanner.nextLine();
System.out.println("输入的内容为:"+str);
System.out.println("======================================================");
System.out.printf("使用hasNextLine()方法接收:");
//判断用户有没有输入字符串使用nextLine方法
if (scanner.hasNextLine()){
String str2 = scanner.nextLine();
System.out.println("输入的内容:"+str2);
}
System.out.println("======================================================");
System.out.printf("使用hasNext()方式判断:");
//判断用户有没有输入字符串使用next方法
if (scanner.hasNext()){
String str1 = scanner.next();
System.out.println("输入的内容:"+str1);
}
//关闭scanner,IO流用完关闭节约资源
scanner.close();
选择结构if switch
if选择结构
String str = "Hello";
if(str.equlas("Hello")){
System.out.println("Hello");
}else if(str.equlas("hello")){
System.out.println("hello");
}else{
System.out.println("无效输入");
}
switch选择结构
java在jdk7才在switch中引入了字符比较
String str = "Hello";
switch(grade){
case 'Hello':
System.out.println("C");
break;
case 'hello':
System.out.println();
break;
default:
break;
}
循环结构 for while dowhile
while,do while
do while 与 while相比至少会执行一次
//while 循环
int a = 1;
while(a<4){
System.out.println(a++);
}
//do while 循环
do{
System.out.println(a++);
}while (a<4);
for循环输出九九乘法表
for快捷键,循环次数+.+for
//for循环 九九乘法表
for(int i=1; i<10; i++){
for (int j=1; j<=i; j++){
System.out.printf(i + "*" + j + "=" + i * j + "t");
}
System.out.println();
}
增强for循环
java5引入,主要用于数组或集合的增强型for循环
int[] number = {10,20,30,40,50};
for (int i:number){
System.out.println(i);
}
break,continue
- break 意在退出,不再执行之后的循环语句
- continue 意在退出本次循环,但会接着执行之后的循环
//循环输出,从1到100,当到11时候退出循环
for (int i=1; i<=100 ;i++){
if (i==11) {
break;
}
System.out.println(i);
}
//循环输出,从1到100,只输出10的倍数
for (int i=1; i<=100; i++){
if (i%10!=0){
continue;
}
System.out.println(i);
}
Java方法
什么是方法,方法的概念 方法是语句的合集
- 方法是解决一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在程序中被创建,在其他地方被引用
- 因此方法的设计,遵循一个方法只完成一个功能
方法包含一个方法头和一个方法体。
- 修饰符:告诉编辑器如何调用该方法。如 public,static,final。
- 返回值类型:方法是否会返回值,如果有返回值选择对应的数据类型即可如 int,Sting,char。如果没有,则以void。
- 方法名:方法的名字,自己取。
- 参数类型:方法被调用的时候,传递值给参数。这个值可以是变量也可以是实参。
- 形式参数:在方法被调用时用于接收外界输入的数据
- 实参:调用方法时实际传给方法的数据
- 方法体:方法的具体实现
//修饰符 返回值类型 方法名(参数类型){
// 方法体
// return;
//}
public class Demo06 {
public static void main(String[] args) {
//调用add方法传给add方法实参,即a b的值
int sum = add(2,3);
System.out.println(sum);
}
//写一个返回 a与b 和的方法 add
public static int add(int a ,int b ){//int a,int b 为形参
return a+b;
}
}
方法的调用
调用方法:对象名.方法名
public class Demo06 {
public static void main(String[] args) {
//调用类Demo06中的text()方法实现1到5的输出
Demo06 demo06 = new Demo06();
demo06.text(1,2,3,4,5);
}
//可变参数
//jdk 1.5 中产生,可以实现多个参数的传递
//可变参数必须在方法中的方法类型中最后定义
public void text(int... i){
for (int i1 = 0; i1 < i.length; i1++) {
System.out.println(i[i1]);
}
}
}
输出:
通俗的讲就是一个类中有两个方法名相同但参数类型不同的方法
- 方法名称必须相同
- 参数列表不同(个数不同,或类型不同,或参数排列顺序不同)
- 方法的返回值类型可以相同也可以不同
//写一个返回 a与b 和的方法 add
public static int add(int a ,int b){//int a,int b 为形参
return a+b;
}
//重载add方法 实现三个数相加
public static int add(int a ,int b ,int c ){
return a+b+c;
}
//重载add方法 实现两个小数相加
public static double add(double a ,double b ){
return a+b;
}
递归
定义
简单来说就是A方法调用A方法
运用阶乘来说明递归机制
public class Demo07 {
public static void main(String[] args) {
int su = f(5);//传递参数,调用方法计算5的阶乘,并将返回结果赋值给su
System.out.println(su);
}
//实现阶乘的方法
public static int f(int i){
if (i == 1){
return 1;
}else{
return i*f(i-1); //递归调用自己,实现自减一不断阶乘
}
}
}
递归优点
利用递归可以用简单的程序来解决一些复杂的问题
递归结构- 递归头:什么时候不调用自身方法。如果没有头,那将现如死循环。
- 递归体:什么时候需要调用自身方法。
//实现阶乘的方法
public static int f(int i){
if (i == 1){
return 1;
}else{
return i*f(i-1); //递归调用自己,实现自减一不断阶乘
}
}
数组
数组的概念
- 数组是相同类型数据的有序集合
- 数组中的每一个数据都有下标,可以通过下标访问
必须先声明数组变量,带能使用,语法格式:
dataType[] arrayRefVar ;//方法一 首选
dataType arrayRefVar[] ;//方法二 c语言定义方式
Java语言中声明数组变量后还需要用new来创建数组
arrayRefVar = new dataType[arraySize];
也可以直接声明的时候就new创建
dataType[] arrayRefVar = new dataType[arraySize];
获取数组的长度
arrays.length();
实例
//方法一
int[] numbers ;
numbers = new int[10];
//方法二
int[] number = new int[5];
//for循环 给number赋值
Scanner scanner = new Scanner(System.in);
System.out.println("请输入5个整数:");
for (int i=0 ; i


