【Java基础】Java语言概述、基本语法、数组、面向对象(上)

这篇博客详细介绍了Java的基础知识,从语言概述开始,涵盖基本语法,包括变量、运算符、控制流程、数组等。接着深入到面向对象的概念,讲解了类和对象、构造器、封装与隐藏等核心概念,适合Java初学者入门学习。
摘要由CSDN通过智能技术生成

Java基础

学习时间安排

一、每天的课程安排
8:30 开始读单词 (25 个-30 个,来回两遍)
8:40-9:00 每天一考
9:00-12:00 上午三节课


1:45-2:00 学生分享
2:00 - 5:00 下午三节课


6:00-9:30 晚自习
(6:00 – 6:30 : 梳理白天的知识:课件、视频、eDiary 框架
6:30 – 晚自习结束:敲代码:至少每天代码敲 2-3。)


周一、二、三 上课
周四 自习
周五、周六 上课
周日 休息


day00_编程入门

Java基础知识图解

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

03-入门概述
04-冯诺依曼体系结构
05-CPU 和 IT 行业三大定律
06-持久化存储设备
07-bit 与 byte
08-内存
09-输入输出设备和网络连接设备
10-计算机史上的两个鼻祖
11-操作系统
12-万维网与软件架构方式
13-职业发展与提升
14-学习经验探讨

day01_Java 语言概述

01-Java 基础阶段目录概述
02-Java 后续学习大纲简述
03-Java 主要应用场景
04-Java 基础图谱及基础阶段项目说明
05-每天授课须知
06-图形化界面操作与命令行操作介绍
07-常用的命令行指令
08-计算机语言的划分
09-不同编程语言的介绍
10-Java 语言的历史及技术体系平台
11-Java 语言的特点
12-JVM 与垃圾收集机制
13-JDK、JRE、JVM 的关系
14-JDK 与 JRE 的安装
15-环境变量的配置
16-配置环境变量中几个问题的解决
17-第一个 Java 程序:HelloWorld
18-几个常见的 bug 的解决
19-EditPlus 的安装和配置
20-单行注释与多行注释
21-文档注释的使用
22-多行注释使用的一个注意点
23-API 文档的说明
24-第一个 Java 程序的总结
25-Java 开发工具的说明

day02_Java 基本语法

01-每天一考
02-复习 1
03-复习 2
04-关键字和保留字的说明
05-标识符及命名规则
06-标识符的命名规范
07-变量的定义
08-定义变量的注意点
09-变量的分类
10-整型变量的使用说明
11-浮点型变量的使用说明
12-char 型变量的使用说明
13-乱码的情况和字符集的说明
14-boolean 型变量的使用
15-自动类型提升运算 1
16-自动类型提升运算 2
17-强制类型转换运算
18-变量运算规则的两个特殊情况
19-String 类型变量的使用
20-两个关于 String 的练习题
21-String 使用的强化说明
22-不同进制的表示方式
23-二进制转换为十进制的说明
24-二进制转换为十进制的练习
25-十进制转二进制的操作
26-二进制与八进制十六进制间的转换

day03_Java 基本语法

01-每天一考
02-复习 1
03-复习 2:变量的定义
04-复习 3:变量的运算规则
05-算术运算符的使用 1
06-算术运算符的使用 2
07-算术运算符的练习
08-关于敲代码和练指法
09-赋值运算符的使用
10-赋值运算符的课后练习
11-比较运算符的使用
12-逻辑运算符的使用说明
13-逻辑运算符的使用测试
14-逻辑运算符的课后练习
15-左移右移位运算符的使用
16-其它位运算符的使用
17-位运算符的练习
18-三元运算符的使用
19-三元运算符与 if-else 的转换
20-运算符的优先级
21-关于流程控制的说明
22-if-else 结构的基本使用

day04_Java 基本语法

01-每天一考
02-复习 1:算术与比较运算符
03-复习 2:比较与逻辑运算符
04-复习 3:位运算符与三元运算符
05-使用 Scannner 从键盘获取 int 型数据
06-使用 Scannner 从键盘获取多种类型数据
07-if-else 的例题 1
08-if-else 的例题 2
09-if-else 课后练习 1:笔试题
10-if-else 课后练习 2:狗的年龄
11-if-else 课后练习 3:彩票问题
12-if-else 课后练习 4:高富帅
13-switch-case 结构的基本使用
14-switch-case 结构的使用说明
15-switch-case 的例题 1
16-switch-case 的例题 2
17-switch-case 课后练习:日期累积
18-switch-case 与 if-else 的转换说明
19-循环结构及 for 循环的理解
20-for 循环结构的使用
21-for 循环的例题

day05_Java 基本语法与项目一

01-每天一考
02-复习
03-for 循环的例题
04-for 循环课后练习
05-while 循环的基本使用
06-do-while 循环的基本使用
07-while(true)结构的使用
08-嵌套循环的使用 1
09-嵌套循环的使用 2
10-嵌套循环练习:九九乘法表
11-质数输出的实现方式一
12-质数输出的算法优化一
13-质数输出的算法优化二
14-break 和 continue 的基本使用
15-带标签的 break 和 continue 的使用
16-质数输出的实现方式二
17-项目一的演示
18-项目一中 Utility 工具类的说明
19-项目一整体框架的搭建
20-项目一退出功能的实现
21-项目一收支明细功能的实现
22-项目二登记收入功能的实现
23-项目一登记支出功能的实现

day06_Eclipse 的使用与数组

01-每天一考
02-复习
03-Eclipse 首次启动的设置
04-HelloWorld 程序的编写和执行
05-Eclipse 使用的常见问题 1
06-Eclipse 使用的常见问题 2
07-数组的概述
08-一维数组的初始化
09-数组元素的调用
10-数组的长度与遍历
11-数组元素的默认初始化值
12-内存结构的简单说明
13-一维数组的内存解析
14-一维数组的课后练习 1
15-一维数组的课后练习 2
16-二维数组的理解和初始化
17-二维数组元素的调用
18-二维数组的长度和遍历
19-二维数组元素默认初始化值
20-二维数组的内存解析

day07_数组

01-每天一考
02-复习:Eclipse 的使用
03-复习:数组的概述_数据结构概述
04-复习:一维数组与二维数组
05-二维数组练习:基本操作
06-二维数组练习:杨辉三角
07-算法:数组元素的赋值
08-算法:数值型数组元素的操作
09-课后练习:数组赋值
10-算法:数组的复制
11-算法:数组元素的反转
12-算法:线性查找
13-算法:二分法查找
14-算法和排序算法的概述
15-算法:冒泡排序的实现
16-算法:快速排序的说明
17-排序算法的横向对比
18-Arrays 工具类的使用
19-数组中的常见异常
20-数组的总结

每天一考

1、使用冒泡排序,实现如下的数组从小到大排序。
int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};
在这里插入图片描述
2、如何翻转上面的数组。请代码实现。

3、复制上述数组,得到一个新的数组。

4、使用线性查找,从上述数组中查找22是否存在。存在,返回所在位置的索引。不存在,输出提示信息。
在这里插入图片描述
5、数组中常见的异常有哪些?请举例说明。
在这里插入图片描述

四、面向对象基础

01-面向过程与面向对象

在这里插入图片描述

02-两个要素:类和对象

概念
类(Class)和对象(Object)是面向对象的核心概念。

  • 类是对一类事物的描述,是抽象的、概念上的定义。
  • 对象是实际存在的该类事物的每个个体,因而也称为实例(instance)。

在这里插入图片描述
类的成员构成
在这里插入图片描述

03-对象的创建和使用

在这里插入图片描述

类的访问机制

1、在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(例外:static方法访问非static,编译不通过。)
2、在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中
定义的成员。

内存解析

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

class Car{
   
	String color = "red";
	int num = 4;
	void show(){
   
		System.out.println("color="+color+"..num="+num);
	}
}
class CarTest {
   
	public static void main(String[] args) {
   
		Car c1 = new Car(); //建立对象c1
		Car c2 = new Car(); //建立对象c2
		c1.color = "blue"; //对对象的属性进行修改
		c1.show(); //使用对象的方法
		c2.show();
	} 
}

在这里插入图片描述
对象数组的内存解析:
在这里插入图片描述

匿名对象

1、 我们也可以不定义对象的句柄,而直接调用这个对象的方法。这
样的对象叫做匿名对象。如:new Person().shout();
2、如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。我们经常将匿名对象作为实参传递给一个方法调用
匿名对象的使用

public class InstanceTest {
   
    public static void main(String[] args) {
   
        Phone p = new Phone();
//      p = null;
        System.out.println(p);
        p.sendMail();
        p.playGame();

        // 匿名对象
        new Phone().price = 5999;
        new Phone().showPrice(); // 0.0 两次new的对象不同

        // 匿名对象的使用
        PhoneMall mall = new PhoneMall();
        mall.show(new Phone());
    }
}

class PhoneMall {
   
    public void show(Phone phone) {
   
        phone.sendMail();
        phone.playGame();
    }
}

class Phone {
   
    double price;

    public void sendMail() {
   
        System.out.println("发邮件");
    }

    public void playGame() {
   
        System.out.println("打游戏");
    }

    public void showPrice() {
   
        System.out.println("手机的价格为:" + price);
    }
}

04-类的成员之一:属性(field)

语法格式

语法格式:修饰符 数据类型 属性名 = 初始化值 ;
1、常用的权限修饰符有:private、缺省、protected、public;其他修饰符:static、final (暂不考虑)
2、数据类型:任何基本数据类型(如int、Boolean) 或 任何引用数据类型
3、属性名: 属于标识符,符合命名规则和规范即可。
举例:

public class Person{
   
	private int age; //声明private变量 age
	public String name =Lila; //声明public变量 name
}

变量的分类

成员变量与局部变量:
1、在方法体外,类体内声明的变量称为成员变量。
2、在方法体内部声明的变量称为局部变量。
在这里插入图片描述
成员变量和局部变量的区别
在这里插入图片描述
在这里插入图片描述

对象属性的默认初始化赋值

在这里插入图片描述

05-类的成员之二:方法(method)

方法的声明格式

在这里插入图片描述
【注意】
1、没有具体返回值的情况,返回值类型用关键字void表示,那么方法体中可以不必使用return语句。如果使用,仅用来结束方法。
2、方法中只能调用方法或属性,不可以在方法内部定义方法。

练习-类的设计

1、1.创建一个Person类,其定义如下:
2、利用面向对象的编程方法,设计类Circle计算圆的面积。

练习-方法声明

3-1、编写程序,声明一个method方法,在方法中打印一个108 的型矩形,
在main方法中调用该方法。

3-2、修改上一个程序,在method方法中,除打印一个108的型矩形外,再
计算该矩形的面积,并将其作为方法返回值。在main方法中调用该方法,
接收返回的面积值并打印。

3-3、修改上一个程序,在method方法提供m和n两个参数,方法中打印一个
mn的型矩形,并计算该矩形的面积, 将其作为方法返回值。在main方法
中调用该方法,接收返回的面积值并打印。

练习-对象数组

4、定义类Student,包含三个属性:学号number(int),年级state(int),成绩
score(int)。 创建20个学生对象,学号为1到20,年级和成绩都由随机数确定。
问题一:打印出3年级(state值为3)的学生信息。
问题二:使用冒泡排序按学生成绩排序,并遍历所有学生信息。
【提示】:
1)生成随机数:Math.random(),返回值类型double;
2) 四舍五入取整:Math.round(double d),返回值类型long。

5、声明一个日期类型MyDate:有属性:年year,月month,日day。创建2个日期对象,分别赋值为:你的出生日期,你对象的出生日期,并显示信息。

自定义数组的工具类

  • ArrayUtil:求数组的最大值、求数组的最小值、求数组总和、求数组平均值、反转数组、复制数组、数组排序、遍历数组、查找指定元素

冒泡排序:
1、第一层循环是用来控制趟数,也就是 n 个数就要比较 n-1 趟;那么第二层循环能不能具体解答一下呢?
2、第二层是控制第 i + 1 趟(因为循环中 i 是从 0 开始的)的比较次数,那么 i+1 趟就是比较了 N - 1 - i次。

/*
 * 自定义数组工具类
 */
public class ArrayUtil {
   
	// 求数组的最大值
	public int getMax(int[] arr) {
   
		int maxValue = arr[0];
		for (int i = 1; i < arr.length; i++) {
   
			if (maxValue < arr[i]) {
   
				maxValue = arr[i];
			}
		}
		return maxValue;
	}

	// 求数组总和
	public int getSum(int[] arr) {
   
		int sum = 0;
		for (int i = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值