java:课后笔记wk45

文章目录

  • 1. class
    • 1.1 toString()和equals()
    • 1.2 overload-constructor
    • 1.3 static
  • 2. Wrapper
  • 3. Maths
  • 4. array
  • 5. arrayList

1. class

1.1 toString()和equals()

public class People{
	private int age;
	private String name;
	
	public People(int age, String name){
		this.age = age;
		this.name = name;
	}

	public String toString(){
		return name + " " + age;
	}

	public boolean equals(People anotherPeople){
		return anotherPeople.age == this.age && anotherPeople.name = this.name;
	}
}


public class Main{
	pblic static void main(String[] args){
		People p = new People(25,"Skylar");
		System.out.println(p);
		//会输出Skylar 25

		People p2 = new People(25, "Skylar");
		System.out.println(p.equals(p2));

	}
}

1.2 overload-constructor

  1. default
  • 没有其他任何constructor的情况下会自动补充。【建议都手动写
  • 有其他constructor fun就不会自动补充,会报错
public class People{
	private int age;
	private String name;
	
	//default constructor
	public People(){
	}
}

public class Main{
	pblic static void main(String[] args){
		People p = new People();
		System.out.println(p);
		//会输出 null 0【默认值】

	}
}
  1. 普通的
  • 传入的variables来自instance variables。
  1. copy- constructor
  • 把一个object的值,copy给另一个object。
public class People{
	private int age;
	private String name;
	
	// copy-constructor
	//将anotherPeople的信息copy给这个people
	public People(People anotherPeople){
		this.age = anotherPeople.age;
		this.name = anotherPeople.name;
	}
}

public class Main{
	pblic static void main(String[] args){
		People p = new People(25, "Skylar");
		People p2 = p;//把p的address给到p2,所以p,p2会同时改变

		//使用copy constructor
		//将p的值,拷贝给p3。
		People p3 = new People(p);
	}
}

1.3 static

  • 当一个东西,属于整个class,就是static
  • static method和static variable
  1. static variable:初始化过程跟instance variable一样。
  2. static method:建议调用时使用class name。
public class People{
	private int age;
	private String name;
	private static int number = 0;
	
	public People(int age, String name){
		this.age = age;
		this.name = name;
		number++;
	}
	public People(People anotherPeople){
		this.age = anotherPeople.age;
		this.name = anotherPeople.name;
		number++;
		
	}
	public People(){
		number++;
	}

	public String toString(){
		return name + " " + age;
	}

	public boolean equals(People anotherPeople){
		return anotherPeople.age == this.age && anotherPeople.name = this.name;
	}

	public static void printClassInfo(){
		System.out.println("Current number: " + number);
	}
}

public class Main{
	pblic static void main(String[] args){
		People p = new People(25,"Skylar");
		//调用时用class name调用【用object也可以但不建议】
		People.printClassInfo();
		System.out.println(p);
		//会输出Skylar 25

		People p2 = new People(25, "Skylar");
		People.printClassInfo();
		System.out.println(p.equals(p2));
	}
}

2. Wrapper

  1. 包装类:为什么?怎么样?
  2. class的使用很灵活,基础数据类型不灵活
  3. boxing:将基础数据类型 = > wrapper class 的过程。
  4. unboxing: wrapper class => 基础数据类型 的过程。
    【byte, short, int, long, float, double, char, boolean】
    【Byte, Short, Integer, Float, Double, Character, Boolean】
  5. 注意⚠️:当使用Boolean时,要认为手动的去判断用户输入的是flase还是其他信息。然后再判断true/false。
  6. Character不能使用parse。【String是character的集合啦】
  7. substring(起, 终),不包含终。
  8. String => char
  9. toUpperCase():转换成大写
  10. isUpperCase():回答是否为大写
  11. toLowerCase():转换成小写
  12. isLowerCase(): 回答是否为小写
  13. isWhitespace():回答是否有空格【3种:普通空格、\t 、\n】
  14. isLetter(): 回答是否是字母
  15. isDigit():回答是否是数字
  16. isLetterOrDigit():回答是否是字母 / 数字
public class Main{
	public static void main(String[] args){
		Integer.parseInt("10");
		//特别注意Boolean
		//只要不是“True”,全部返回False【不考虑大小写】
		System.out.println(Boolean.parseBoolean("True"));//true
		System.out.println(Boolean.parseBoolean("TRue"));//true
		System.out.println(Boolean.parseBoolean("False"));//false
		System.out.println(Boolean.parseBoolean("sfgdfg"));//false

		//String => char
		String s = "helloworld!";
		char x = s.charAt(5);/获取index有5时的内容。

		//应用:检查id和密码是否合规
		Scanner sc = new Scanner(System.in);
		String id = sc.nextLine();
		String password = sc.nextLine();

		boolean allNum = true;
		for(int i = 0; i < id.length; i++){
			//看id里每一位是否为数字
			if(!Character.isDigit(id.charAt(i))){
				allNum = false;
			}
		}
		String results = allNum ? "id合法": "id非法";
		System.out.println(results);

		boolean hasNum = false;
		boolean hasUpper = false;
		boolean hasLower = false;
		for(int i = 0; i < password.length; i++){
			if(Character.isUpperCase(password.charAt(i))){
				hasUpper = true;
			}else if(Character.isLowerCase(password.charAt(i))){
				hasLower = true;
			}else if(Character.isDigit(password.charAt(i))){
				hasNum = true;
			}
		}
		String results = hasNum && hasUpper && hasLower ? "密码合法": "密码不合法";
	}
}

3. Maths

  • java.lang: String, Wrapper, Math
  • 绝大多数都是static
  1. abs、max、min
  2. pow(底数,指数)
  3. ceil、floor、sqrt

4. array

  1. array拷贝思路
    1. 创建一个新的array
    2. copy旧array的内容
    3. 再将想添加的内容填入新的array
    4. 最后,将新array的地址赋给旧的人、array。
  2. 数组的另一种for loop请添加图片描述
public class Main{
	public static void main(String[] args){
		People[] peoples = new People[10];
		//将存放类型为People这个class,名字叫peoples的数组,打印里面的每个数据。
		for(People p: peoples){
			System.out.println(p);
		}
	}
}	

5. arrayList

  • 数组的局限性:长度固定。
    =>. 想要一个像数组一样,能把相同数据类型放一起的,但长度可以自动修改的。=> array list.
  1. arraylist排序非常方便!
  2. arraylist会自动翻倍/缩放。【当位子不够了,原本4位,它会自动扩展到8位。删除同理缩放一倍】
  3. 缺点:访问速度比array慢一点。arraylist里的数据类型只能是class,无法存储基础数据类型
import java.util.ArrayList;

public class Main{
	public static void main(String[] args){
		//【公式】
		ArrayList<baseType> watches = new ArrayList<baseType>(初识容量大小);

		//举例
		ArrayList<String> watches = new ArrayList<>();
		//增加内容
		watches.add("AP");
		watches.add("PP");
		watches.add("Constantin");
		System.out.println(watches);//输出[AP, PP, Constantin]

		//访问
		System.out.println(watches.get(0));//输出AP

		//修改arraylist内容
		watches.set(0, "Omega");//将第一位改成Omega[Omega,PP,Constantin]

		//删除arraylist某一个内容
		watches.remove(2);//将index=2的那一位直接删除。[Omega,PP]
	
		//获得watches的长度
		watches.size();//输出2

		//排序
		Collections.sort(watches);//按照首字母进行排列。
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/543056.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

每日一题:无重复字符的最长子串

给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是"abc"&#xff0c;所以其长度为 3。示例 2: 输入: s "bbbbb" 输出: 1 解释: 因为无重…

mysql题目5

tj11&#xff1a; select max(c.teacher_age) 最大的年龄 from tb_teacher c tj12: select a.class_name 班级名称,b.student_name 学生姓名,b.gender 学生性别 from tb_class a join tb_student b on a.class_idb.class_id join tb_teacher c on a.teacher_idc.teacher_id w…

【深度学习实战(1)】如何使用argparse模块设置自己的训练参数

一、argparse模块用法 1、argparse是一个python模块&#xff0c;用途是&#xff1a;命令行选项、参数和子命令的解释。 2、argparse库下载&#xff1a;pip install argparse 3、使用步骤&#xff1a; 导入argparse模块&#xff0c;并创建解释器 添加所需参数 解析参数 二、…

2024年【化工自动化控制仪表】考试内容及化工自动化控制仪表考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 化工自动化控制仪表考试内容是安全生产模拟考试一点通生成的&#xff0c;化工自动化控制仪表证模拟考试题库是根据化工自动化控制仪表最新版教材汇编出化工自动化控制仪表仿真模拟考试。2024年【化工自动化控制仪表】…

2009-2021年上市公司僵尸企业识别数据(含原始数据+计算代码+计算结果)

2009-2021年上市公司僵尸企业识别数据&#xff08;含原始数据计算代码计算结果&#xff09; 1、时间&#xff1a;2009-2021年 2、指标&#xff1a; 证券代码 、证券简称、上市日期、year、净利润、政府补助、流动负债合计、负债合计、财务费用明细利息支出、资产总计、长期负…

springboot 人大金仓 kingbase-备份还原,命令中带密码

命令带密码参考 Java代码实现国产人大金仓数据库备份还原需求-CSDN博客文章浏览阅读818次&#xff0c;点赞16次&#xff0c;收藏12次。本人在一次项目中&#xff0c;遇到了需要在系统管理中提供给用户备份还原系统数据的功能&#xff0c;由于项目特殊性&#xff0c;项目底层数…

【漏洞复现】WordPress LayerSlider插件SQL注入漏洞复现

声明&#xff1a;亲爱的读者&#xff0c;我们诚挚地提醒您&#xff0c;Aniya网络安全的技术文章仅供个人研究学习参考。任何因传播或利用本实验室提供的信息而造成的直接或间接后果及损失&#xff0c;均由使用者自行承担责任。Aniya网络安全及作者对此概不负责。如有侵权&#…

PostgreSQL入门到实战-第二十七弹

PostgreSQL入门到实战 PostgreSQL中数据分组操作(二)官网地址PostgreSQL概述PostgreSQL中HAVING命令理论PostgreSQL中HAVING命令实战更新计划 PostgreSQL中数据分组操作(二) 使用PostgreSQL HAVING子句来指定组或聚合的搜索条件 官网地址 声明: 由于操作系统, 版本更新等原因…

驾校驾考全科语音矩阵版h5微信抖音QQ快手小程序app开源版开发

驾校驾考全科语音矩阵版h5微信抖音QQ快手小程序app开源版开发 支持SAAS、支持独立加密、支持独立开源、价格不同。 自带数据&#xff0c;后台一键初始。 驾考系统 微信公众号微信小程序抖音小程序可打包APP 所有车型全覆盖、2024全科题目、语音讲解、模拟考试等等 这是一款什…

NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧

NL2SQL实践系列(1)&#xff1a;深入解析Prompt工程在text2sql中的应用技巧 NL2SQL基础系列(1)&#xff1a;业界顶尖排行榜、权威测评数据集及LLM大模型&#xff08;Spider vs BIRD&#xff09;全面对比优劣分析[Text2SQL、Text2DSL] NL2SQL基础系列(2)&#xff1a;主流大模型…

OSPF动态路由实验(思科)

华为设备参考&#xff1a; 一&#xff0c;技术简介 OSPF&#xff08;Open Shortest Path First&#xff09;是一种内部网关协议&#xff0c;主要用于在单一自治系统内决策路由。它是一种基于链路状态的路由协议&#xff0c;通过链路状态路由算法来实现动态路由选择。 OSPF的…

蓝桥杯真题演练:2023B组c/c++

日期统计 小蓝现在有一个长度为 100 的数组&#xff0c;数组中的每个元素的值都在 0 到 9 的范围之内。 数组中的元素从左至右如下所示&#xff1a; 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 …

LeetCode 热题 HOT 100(P31~P40)

系列文章&#xff1a; LeetCode 热题 HOT 100(P1~P10)-CSDN博客 LeetCode 热题 HOT 100(P11~P20)-CSDN博客 LeetCode 热题 HOT 100(P21~P30)-CSDN博客 LeetCode 热题 HOT 100(P31~P40)-CSDN博客 LC76minimum_window . - 力扣&#xff08;LeetCode&#xff09; 题目&…

设计一个通知系统

设计的系统支持不同类型消息的发送&#xff0c;例如push消息&#xff0c;sms消息和邮箱消息&#xff0c;能够支持千万级别的发送&#xff0c;保证消息推送的幂等性。系统结构图如下&#xff1a; 系统架构图中各组件作用说明&#xff1a; device/setting/user info&#xff1a;…

反向迭代器的底层

文章目录 1.迭代器分类2.迭代器使用3.模拟实现迭代器3.1 各个类的迭代器3.2 所有容器的迭代器(迭代器适配器) 1.迭代器分类 迭代器按照定义方式分成以下四种。 正向迭代器&#xff0c;定义方法如下&#xff1a; 容器类名::iterator 迭代器名; 常量正向迭代器&#xff0c;定…

Swagger转换成Excel文件

1、添加swagger解析依赖包&#xff1a; <dependency><groupId>io.swagger.parser.v3</groupId><artifactId>swagger-parser</artifactId><version>2.1.12</version></dependency>2、示例代码&#xff1a; package com.rlclou…

第十四届蓝桥杯题解:平方差 ,更小的数,买瓜,网络稳定性(货车运输)

目录 平方差 更小的数 买瓜 网络稳定性&#xff08;货车运输&#xff09; 货车运输 平方差 这道题就是数论的题&#xff0c;不难想到一个数m可以拆成(a-b)(ab)&#xff0c;其实(a-b)和(ab)就是m的一对因子&#xff0c;不妨设为x和y。 则有&#xff1a; abx; a-by; x*ym; 联…

《由浅入深学习SAP财务》:第2章 总账模块 - 2.7 总账模块报表 -2.7.1 对外报表:资产负债表及利润表

总账模块报表既包括对外报告的资产负债表、损益表、现金流量表&#xff0c;也包括企业自身用于查询和分析的各类报表&#xff0c;如科目余额表等。 2.7.1 对外报表&#xff1a;资产负债表及利润表 在SAP中&#xff0c;出具资产负债表和利润表的标准方法是先在后台建立一套“会…

大模型化身数据魔法师,降低NLP高置信误判

关注公众号【AI论文解读】回复: 论文解读 获取本文论文 引言&#xff1a;NLP模型的高置信错误与脆弱性问题 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;模型的预测性能优化往往伴随着高置信错误&#xff08;high confidence errors&#xff09;的产生&#x…

【MATLAB源码-第49期】基于蚁群算法(ACO)算法的栅格路径规划,输出最佳路径图和算法收敛曲线图。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 蚁群算法是一种模拟自然界蚂蚁觅食行为的启发式优化算法。在蚁群系统中&#xff0c;通过模拟蚂蚁之间通过信息素沟通的方式来寻找最短路径。 在栅格路径规划中&#xff0c;蚁群算法的基本步骤如下&#xff1a; 1. 初始化: …