JavaSE基础(上)

目录

第一章 java入门

环境配置

常用cmd命令 

打开cmd 

安装JDK:Java工具包

  IDEA

1  IDEA概述(1)IDEA概述:IDEA全称IntelliJ IDEA,是用于Java语言开发的集成环境,是业界公认的目前用于Java程序开发最好的工具。是可以把代码编写、编译、执行、调试等多种功能综合到一起的开发工具。(2)IDEA的下载和安装: 参考这篇博客:IDEA的下载和使用安装

2 IDEA中HelloWorld

3 IDEA中项目结构

​编辑4 IDEA中内容辅助键和快捷键

第二章 java基础概念

字面量

基本数据类型

标识符

键盘录入

 第三章 运算符

隐式转换 

强制转换 

三元运算符 

其他运算符

随机数Random 

原码反码补码

 第四章 判断与循环

一、判断

if语句

switch语句

二、循环语句

for

 while

do…while 循环语句

第五章 数组

一、 数组定义格式

二、数组初始化之动态初始化

三、 数组元素访问

 四、Java内存分配

五、数组初始化之静态初始化

第六章 方法(与c、c++函数类似)

第七章 面向对象基础

一、类和对象

二、成员变量和局部变量

三、封装 

1 private关键字

2 this关键字

3 封装

4 构造方法

5 标准类的制作

四、对象内存图

第七章 字符串(String)

API

一、String构造方法

二、字符串比较 

三、StringBuilder

1 StringBuilder概述

​编辑2 String和StringBuilder的区别

 3 StringBuilder常用方法

4 StringBuilder 和 String 的相互转换

实例:拼接字符串

实例:字符串反转

第八章 集合

1 集合基础

2 ArrayList成员方法

案例:Java 学生管理系统


第一章 java入门

环境配置

常用cmd命令 

打开cmd 

安装JDK:Java工具包

 

  IDEA

1  IDEA概述
(1)IDEA概述:IDEA全称IntelliJ IDEA,是用于Java语言开发的集成环境,是业界公认的目前用于Java程序开发最好的工具。
是可以把代码编写、编译、执行、调试等多种功能综合到一起的开发工具。
(2)IDEA的下载和安装: 参考这篇博客:IDEA的下载和使用安装
2 IDEA中HelloWorld

步骤:
(1)创建一个空项目(JavaSE_Code)
(2)创建一个新模块(idea_test)
(3)在idea_test模块下的src下创建一个包(com.itheima)
(4)在com.itheima包下新建一个类(Helloworld)
(5)在Helloworld类中编写代码
(6)在idea中执行程序

3 IDEA中项目结构

Project–>模块–>包–>类


4 IDEA中内容辅助键和快捷键


(1)快速生成语句:
快速生成main()方法:psvm,回车
快速生成输出语句:sout,回车

(2)内容辅助键:
ctrl+alt+space,内容提示,代码补全等

(3)快捷键:
注释:
  单行:选中代码,ctrl+/
  多行:选址代码,ctrl+shift+/

格式化:
  ctrl+alt+L
 

第二章 java基础概念

字面量

在这里插入图片描述
在这里插入图片描述

基本数据类型

 

标识符

键盘录入

 第三章 运算符

隐式转换 

强制转换 

三元运算符 

其他运算符

随机数Random 

 

原码反码补码

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

 第四章 判断与循环

该篇章语法与c、c++类似 ,所以不在此过多论述,感兴趣可以学一下c语言。

一、判断

if语句

switch(表达式){
case 值1:
			语句体1;
			break;
case 值2:
			语句体2;
			break;
···
default:
			语句体n+1;
			[break;]
}

switch语句

switch(表达式){
case 值1:
			语句体1;
			break;
case 值2:
			语句体2;
			break;
···
default:
			语句体n+1;
			[break;]
}

二、循环语句

for

for (初始化语句;条件判断语句;条件控制语句){
	循环体语句;
}

 while

初始化语句;
while (条件判断语句){
	循环体语句;
	条件控制语句;
}

do…while 循环语句

初始化语句;
do{
	循环体语句;
	条件控制语句;
}while(条件判断语句);

第五章 数组

一、 数组定义格式

概念:数组(array)是一种用于存储多个相同类型数据的存储模型

数组的定义格式:
(1)格式1:数据类型[ ] 变量名,例如:int [ ] arr。定义了一个int类型的数组,数组名是arr。
(2)格式2:数据类型 变量名[ ], 例如:int arr[ ]。定义了一个int类型的变量,变量名是arr数组。

二、数组初始化之动态初始化


初始化:就说为数组中的数组元素分配内存空间,并为每个数组元素赋值。

数组初始化类型:动态初始化、静态初始化

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。

动态初始化格式:数据类型 [ ] 变量名 = new 数据类型[数组长度],例如:int [] arr = new int[3]
 

public class ArrayDemo{
	public static void main(String[] args){
	int[] arr = new int[3]
	/*
	左边:
		int:说明数组中的元素是int类型
		[]:说明这是一个数组
		arr:这是数组的名称
	右边:
		new:为数组申请内存空间
		int:说明数组中的元素类型是int类型
		[]:说明这是一个数组
		3:数组长度,其实就说数组中的元素个数
	}
}

三、 数组元素访问

数组变量访问方式:数组名

数组内部保存数据的访问方式:数组名[索引]

什么是索引:索引是数组中数据的编号方式,用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名。注意:索引是从0开始的、索引是连续的、索引逐一增加,每次加1。

public class ArrayDemo{
	public static void main(String[] args){
	int[] arr = new int[3]
	
	//输出数组名
	System.out.println(arr);		# out>> [i@880ec60 内存地址

	//输出数组中的元素
	System.out.println(arr[0]);		# out>> 0
	System.out.println(arr[0]);		# out>> 0
	System.out.println(arr[0]);		# out>> 0
	}
}

 四、Java内存分配

 

五、数组初始化之静态初始化

静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。

格式1:数据类型 [ ] 变量名 = new 数据类型[ ] {数据1, 数据2, 数据3, …},例如:int [ ] arr = new int[ ] {1, 2, 3};

格式2:数据类型 [ ] 变量名 = {数据1, 数据2, 数据3, …},例如:int [ ] arr = {1, 2, 3};
 

public class ArrayTest01{
	public static void main(String[] args){
		//定义数组
		int[] arr = {1 , 2, 3, 4, 5};
		
		//使用通用的遍历格式
		for(int x=0; x<arr.length; x++){
			System.out.println(arr[x]);
		}
	}
}

第六章 方法(与c、c++函数类似

概念:方法(Method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
注意
(1)方法必须先创建才可以使用,该过程称为方法定义;
(2)方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用。

实例 

public class MethodDemo
{
	public static void main(String[] args)
	{
		//调用方法
		isEvenNumber();
	}
	
	//需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
	public static void isEvenNumber()
	{
		//定义变量
		int number = 10;
		number = 9;
		
		//判断该数是否是偶数
		if(number%2 ==0)
		{
			System.out.println(true);	
		}
		else
		{
			Systm.println(false);
		}
	}
}

第七章 面向对象基础

一、类和对象

1. 什么是对象:万物皆对象,客观存在的事物皆为对象。
2. 什么是对象的属性: 对象具有的各种特征,每个对象的每个属性都拥有特定的值。
3. 什么是对象的行为: 对象能够执行的操作。

4. 什么是类:类是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为。类是JAVA程序的基本组成单位。
  类的特点:
  (1)类是对象的数据类型;
  (2)类是具有相同属性和行为的一组对象的集合。
5. 类和对象的关系:类是对象的抽象,对象是类的实体。

6. 类的组成:属性和行为。
  属性:在类中通过成员变量来体现(类中方法外的变量)
  行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

7. 类的定义:

public calss 类名{
	// 成员变量
	变量1的数据类型 变量1;
	变量2的数据类型 变量2;
	...
	//成员方法
	方法1;
	方法2;
	...
}

8. 对象的使用:
  (1)创建对象:类名 对象名 = new 类名();
  (2)使用对象:使用成员变量:对象名.变量名;使用成员方法:对象名.方法名()

二、成员变量和局部变量

1. 成员变量:类中方法外的变量。
2. 局部变量:类中方法中的变量。

public class Student{
	String name;					// 成员变量

	public void study(){
		int i = 0;					// 局部变量
		System.out.println('Good good study!');
	}

	int age;						// 成员变量
}

3. 成员变量和局部变量的区别

三、封装 

1 private关键字

作用:private是一个关键字;它可以修饰成员(成员变量和成员方法);作用是保护成员不被别的类使用,被private修饰的成员只能在本类中才能访问。
使用:针对private修饰的成员变量,如果需要被其他类使用,应提供相应的操作。
(1)提供 get变量名() 方法,用于获取成员变量的值,方法用public修饰;
(2)提供 set变量名(参数)方法,用于设置成员变量的值,方法用public修饰。

public class Student{
	//成员变量
	String name;
	private int age;

	//提供get/set方法
	public void setAge(int a){
		if (a<0 || a>120){
			System.out.println("你给的年龄有误");
		}else{
			age = a;
		}
	}
	
	public int getAge(){
		return age;
	}

}

2 this关键字

(1)this修饰的变量用于指代成员变量。
    方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量;
    方法的形参没用与成员变量同名,不带this修饰的变量指的是成员变量。
(2)this代表所在类的对象引用。方法被哪个对象调用,this就代表哪个对象。

3 封装

1. 封装概述:封装是面向对象三大特征之一(封装、继承、多态),是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的。
2. 封装原则:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供对应的getXxx() / setXxx()方法。
3. 封装优点:通过方法来控制成员变量的操作,提高了代码的安全性。把代码用方法进行封装,提高了代码的复用性。
 

4 构造方法

概念:构造方法是一种特殊的方法,用于创建对象,功能是完成对数据的初始化。
格式

public class 类名{
	修饰符 类名(参数){
	}
}

注意事项:
(1)构造方法的创建:如果没有定义构造方法,系统将给出一个默认的无参数构造方法;如果定义了构造方法,系统将不再提供默认的构造方法。
(2)构造方法的重载:如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法。
(3)推荐的使用方式:无论是否使用,都手工书写无参数构造方法。

5 标准类的制作

(1)成员变量:使用private修饰
(2)构造方法:提供一个无参构造方法、提供一个带多个参数的构造方法。
(3)成员方法:提供每一个成员变量对应的setXxx() / getXxx();提供一个显示对象信息的show()。
(4)创建对象并为其成员变量赋值的两种方式:无参构造方法创建对象后使用setXxx()赋值;使用带参构造方法直接创建带有属性值的对象。
 

public class Student{
	// 成员变量
	private String name;
	private int age;

	// 构造方法
	public Student() {}

	public Student(String name, int age){
		this.name = name;
		this.age = age;
	}

	// 成员方法
	public void setName(String name){
		this.name = name;
	}

	public String getName(){
		return name;
	}

	public void setAge(){
		this.age = age;
	}
	
	public int getAge(){
		return age;
	}

	public void show(){
		System.out.println(name + "," + age);
	}

}
public class StudentTest{
	public static void main(String[] args){
		// 无参数构造方法创建对象后使用setXxx()赋值
		Student s1 = new Student();
		s1.setName("Kobe");
		s1.setAge("24");
		s1.show();

		// 使用带参构造方法直接创建带有属性值的对象
		Student s2 = new Student(name:"Kobe", age:24);
		s2.show();

	}

}

四、对象内存图

第七章 字符串(String)

 String类在java.lang包下,所以使用的时候不需要导包。

API

一、String构造方法

二、字符串比较 

 

 

 用户登录案例:

package string;

import java.util.Scanner;

public class string001 {
    public static void main(String[] args){
         // 已知用户名和密码
        String username = "Kobe";
        String password = "24&8";

        // 用循环实现多次机会,这里的次数明确,采用for循环实现
        for(int i=0; i<3; i++){

            // 键盘要录入登录的用户名和密码,用Scanner实现
            Scanner sc = new Scanner(System.in);

            System.out.println("请输入用户名:");
            String name = sc.nextLine();

            System.out.println("请输入密码:");
            String pwd = sc.nextLine();

            // 用键盘录入的用户名和密码和已知的用户名和密码进行比较,并给出相应的提示
            if (username.equals(name) && password.equals(pwd)){
                System.out.println("登录成功");
                break;
            } else{
                if ((2-i) == 0){
                    System.out.println("登录失败,你的账号已被冻结!");
                } else{
                    System.out.println("用户名或密码输入错误,你还有" + (2-i) + "次输入机会!");
                }
            }
        }
    }
}

遍历字符串

package string;

import java.util.Scanner;

public class string002 {
    public static void main(String[] args){
        // new一个Scanner对象接收输入的字符串
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个字符串:");
        String line = sc.nextLine();

        // 定义for循环,用charAt()方法遍历字符串
        for (int i=0; i< line.length(); i++){
            System.out.println(line.charAt(i));
        }
    }

三、StringBuilder

 

1 StringBuilder概述


StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是StringBuilder对象中的内容是可变的。


2 String和StringBuilder的区别

 
String的内容是不可变的;StringBuilder的内容是可变的。
 

 3 StringBuilder常用方法

package string;

/*
    StringBuilder构造方法:
        public StringBuilder():创建一个空白可变字符串对象,不含有任何内容。
        public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象。
 */

public class string003 {
    public static void main(String[] args){
        // public StringBuilder()
        StringBuilder sb = new StringBuilder();
        System.out.println("sb:" + sb);
        System.out.println("sb.length():" + sb.length());

        // public StringBuilder(String str)
        StringBuilder sb2 = new StringBuilder("hello");
        System.out.println("sb2:" + sb2);
        System.out.println("sb2.length():" + sb2.length());
    }
}
package string;

/*
    StringBuilder的添加和反转方法:
        pubic StringBuilder append(任意类型):添加数据,并返回对象本身;
        public StringBuilder reverse(): 返回相反的字符序列
 */

public class string004 {
    public static void main(String[] args){
        // 创建对象
        StringBuilder sb = new StringBuilder();

        // 链式编程
        sb.append("hello ").append("world ").append("!");
        System.out.println("sb: " + sb);

        // public StringBuilder reverse():返回相反的字符序列
        sb.reverse();
        System.out.println("sb: " + sb);
    }
}

4 StringBuilder 和 String 的相互转换


1. StringBuilder转换为String

public String toString():通过toString()就可以实现把StringBuilder转换为String。

2. String转换为StringBuilder
public StringBuilder(String s):通过构造方法就可以实现把String转换为StringBuilder。
 

package string;

public class string005 {
    public static void main(String[] args){
        // 先创建一个对象
        StringBuilder sb = new StringBuilder();
        sb.append("hello");

        // 将StringBuilder转换为String
        String s = sb.toString();
        System.out.println(s);

        // 将String转换为StringBuilder
        StringBuilder s2 = new StringBuilder(s);
        System.out.println(s2);
    }
}

实例:拼接字符串

需求:定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。例如,数组为int [] arr = {1, 2, 3}; ,执行方法后的输出结果为:[1,2,3]。

public class string006 {
    public static void main(String[] args){
        int[] arr = {1,2,3,4,5};

        //调用方法,用一个变量接收结果
        String s = array2string(arr);          // 对数组的格式进行转换

        // 输出结果
        System.out.println(s);


    }

    public static String array2string(int[] arr){
        // 在方法中用 StringBuilder 按照要求进行拼接,并把结果转成 String 返回。
        StringBuilder sb = new StringBuilder();         // new一个StringBuilder对象

        sb.append('[');

        for (int i=0; i<arr.length; i++){
            if(i == arr.length-1){
                sb.append(arr[i]);
            }
            else{
                sb.append(arr[i]).append(',');              // 这里不可以用 + 号来拼接字符串
            }
        }

        sb.append(']');

        String s = sb.toString();

        return s;
    }
}

实例:字符串反转

import java.util.Scanner;

public class string007 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String line = sc.nextLine();

        // 调用方法,传入输入的字符串,返回反转后的字符串
        String s = reverse(line);

        System.out.println(s);
    }

    public static String reverse(String s){
        StringBuilder sb = new StringBuilder(s);
        String reverse_s = sb.reverse().toString();

        return reverse_s;
        // 简便的语句:return new StringBuilder(s).reverse().toString();
    }
}

 

第八章 集合

1 集合基础

集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变。集合类有很多,本章着重介绍:ArrayList。

2 ArrayList成员方法

构造


  

 

结果 

 


结果:

public E remove(int index):删除指定索引处的元素,返回被删除的元素

结果:

结果:

这里出现了索引越界
public E set(int index,E element):修改指定索引处的元素,返回被修改的元素

结果:

public E get(int index):返回指定索引处的元素

结果:

 

练习一:

 

 

练习二: 

 

 

 练习三:

 

 

案例:Java 学生管理系统

请参考:学生管理系统https://blog.csdn.net/m0_64378422/article/details/131516217

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值