老王学Java的六周第二天

静态static的内存图:
在这里插入图片描述
静态代码块:
静态代码块:格式
public class 类名称{
static {
//静态代码快的内容
}
}

特点:
当第一次用到本类时,静态代码块执行唯一的一次。
(当你首次用到本类,就执行一次,那么当第二次执行的时候,静态代码快就不执行了)
静态内容总是优先于非静态,所以静态代码块比构造方法先执行

静态代码块的典型用途:
用来一次性地对静态成员变量进行赋值,

public class Person {
	
	static {
		System.out.println("静态代码块执行");
	}
	
	
	public Person(){
		System.out.println("构造方法执行了!");
	}

}
public class Demo04Static {
	
	public static void main(String[] args){
		
		//只要是new,构造方法肯定执行,但是静态代码块也得执行
		Person one = new Person();
		
		
		//这是第二次new 构造方法执行两次,但是静态方法块执行一次
		Person two = new Person();
	}
	

}

数组工具类Arrays
iava.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作。

public static String toString(数组);将参数数组变成字符串(按照默认格式:[元素1,元素2,元素3…])小括号的内的(数组)
只要是数组就行

public static void sort(数组),按照默认升序对数组的元素进行排序。(升序就是从小到大)

备注:
1,如果是数值,sort默认按照升序从小到大。
2,如果是字符串,sort默认按照字母升序,(如果是中文是按照中文说对应的数字大小)
3,如果是自定义的类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持。(今后学习)

import java.util.Arrays;
public class Demo01Arrays {
	
	public static void main(String[] args){
		int[] intArray = {10, 20, 30};
		//将int[]数组按照默认格式变成字符串
		String intStr = Arrays.toString(intArray);
		System.out.println(intStr);//[10, 20, 30]
		
		
		int[] array1 = {2, 1, 3, 10, 6};//后面是乱的数组,不是升序
		Arrays.sort(array1);
		System.out.println(Arrays.toString(array1));//默认排序的效果[1, 2, 3, 6, 10]
		
		
		
		String[] array2 = {"bbb", "aaa", "ccc"};//String数组
		Arrays.sort(array2);
		System.out.println(Arrays.toString(array2));//结果是可以的[aaa, bbb, ccc]
		
		
	}

}

Arrays练习:字符串倒序排列
题目:
请使用Arrays相关的API,将一个随机字符串中的所有字符串升序排列,并倒序打印。

ublic class Demo02ArraysPractise {
	
	public static void main(String[] args){
		String str = "avsdfe86564xsgrterwq";
		
		//如何进行升序排列:sort
		//必须是一个数组才能用Arrays.sort方法
		//那么我就需要一个字符串变成一个数组
		//String -- > 数组,用toCharArray
		char[] chars = str.toCharArray();
		Arrays.sort(chars);//对字符数组升序排列
		
		//需要倒序遍历
 //   	for(int i = 0; i < chars.length; i++){  这个是正序
			
//		} 
		//倒序就是正序反过来
		for(int i = chars.length - 1; i >= 0; i--){
			System.out.println(chars[i]);//xwvtssrrqgfeeda86654
			
		}
	}

}

数学工具类Math
Math是数学的意思
*
数学工具类Math

java.util.Math类:
是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作。
(double是返回值)(abs 在数学中是绝对的意思,在这里是绝对值的意思)
public static double abs(double num):获取绝对值;多种重载
(数学当中绝对值的概念:是整数的绝对值是整数,零也是一样的,但是负数的绝对值也是整数)

public static double ceil(double num):向上取整。(什么是向上取整:比如12.1,那么就是往上撩 撩成13)

public static double floor(double num);向下取整;(向下就和向上相反,比如12.1,那么就往下撩 就成了12)

public static lang round (double num);四舍五入;注意这个不带小数点的

Math.PI代表近似的圆周率常量 (double).

public class Demo03Math {
	
	public static void main(String[]args){
		//获取绝对值,有多种重载 只要记住abs就可
		System.out.println(Math.abs(3.14));//3.14
		System.out.println(Math.abs(0));//0
		System.out.println(Math.abs(-2.5));//2.5
		System.out.println("========");
		
		
		//向上取整  //什么状况需要向上取整
		//比如有21个箱子,一个人一次最多搬10个箱子,那么得几次搬完,
		//得三次搬完,只是最后一次搬的少
		System.out.println(Math.ceil(3.9));//4.0
		System.out.println(Math.ceil(3.1));//4.0
		System.out.println(Math.ceil(3.0));//3.0 不能撩一整个所以还是3.0
		System.out.println("========");
		
		//向下取整    比如去小超市买东西321.6 只会收你321。 .6就抹去了抹零
		System.out.println(Math.floor(30.1));//30.0
		System.out.println(Math.floor(30.9));//30.0
		System.out.println(Math.floor(31.0));//31.0 无零可抹
		System.out.println("========");
		
		
		//四舍五入 //这个不带小数点的,上面的是可能带小数点的
		System.out.println(Math.round(20.4));//20
		System.out.println(Math.round(10.5));//11
		
		
		
		
	}
}

练习题:
题目
计算,在-10.8 到 5.9之间,绝对值大于6 或者小于2.1 的整数有多少个?

分析解题思路:
1,首先有了一个范围,既然确定了范围,for循环(范围确定,次数确定就用for循环)
2,起点位置-10.8应该转换成为-10.0,两种办法
2.1可以使用Math.ceil方法,向上(向正方向)取整
2.2 强制类型转换,强转成为int,自动舍弃所有小数位
3,每一个数字都是整数,所以步进表达式应该是num++,这样每次都是+1的。
4,如何拿到绝对值那:Math.abs方法.
5, 一旦发现了一个数字,需要让计数器++进行统计

备注:如果使用Math.ceil方法,-10.8可以变成-10.0.是个double值,注意double值也可以++的,

public class Demo04MathPractise {
	public static void main(String[] args){
		
		int count = 0;//符合要求的数量
		
		double min = -10.8;
		double max = 5.9;
		
		//这样处理,变量i就是区间之内所有的整数
		for(int i = (int) min; i < max; i++){
			int abs = Math.abs(i);//绝对值
			if(abs > 6 || abs < 2.1){//判断绝对值的要求判断 ||是或者
				System.out.println(i);
				count++;
			}
		}
		System.out.println("总共有:" + count);//9个
	}
}

继承的概述:
在这里插入图片描述
继承的格式:
在继承的关系中,“子类就是一个父类”。也就是说,子类可以被当做父类看待。
例如父类是员工,子类是讲师,那么“讲师就是一个员工”。关系: is-a。

定义父类的格式:(一个普通的类定义)
public class 父类名称{
//…
}

定义子类的格式:
public class 子类名称extends 父类名称 {
//…
}

先创建一个父类: 员工

public class Employee {
	public void method(){
		System.out.println("方法执行!");
	}
}

在创建一个员工的子类:讲师

public class Teacher extends Employee {

}

``
`
在创建另一个员工的子类:助教

public class Assistant extends Employee{

}

那么在集合

public class Demo01Extends {
public static void main(String[] args){
//创建了一个子类对象
Teacher teacher = new Teacher();
//Teacher类当中虽然什么都没写,但是会继承来自父类的method方法。
teacher.method();

	//创建了另一个子类助教的对象
	Assistant assistant = new Assistant();
	assistant.method();
}

}



weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值