当前位置: 首页 > news >正文

《面向对象综合训练01~05》

《面向对象综合训练01~05》

训练01:文字版格斗游戏

在这里插入图片描述

  • 第一步:创建游戏角色的javabean类
public class Role {private String name;private int blood;private char gender;private String face;//长相是随机的//创建男女长相的随机数组String[] boyfaces = {"风流俊雅", "气字轩昂", "相貌英俊", "五官端正", "相貌平平", "一塌糊涂", "面目狰狞"};String[] girlfaces = {"美奂绝伦", "沉鱼落雁", "婷婷玉立", "身材娇好", "相貌平平", "相貌简陋", "惨不忍睹"};//attack 攻击描述:String[] attacks_desc = {"%s使出了一招【背心钉】,转到对方的身后,一掌向%s背心的灵台穴拍去。","%s使出了一招【游空探爪】,飞起身形自半空中变掌为抓锁向%s.","%s大喝一声,身形下伏,一招【劈雷坠地】,捶向%s双腿。n","%s运气于掌,一瞬间掌心变得血红,一式【掌心雷】,推向%s。","%s阴手翻起阳手跟进,一招【没遮拦】,结结实实的捶向%s。","%s上步抢身,招中套招,一招【劈挂连环】,连环攻向%s。"};//injured 受伤描述:String[] injureds_desc = {"结果%s退了半步,毫发无损","结果给%s造成一处瘀伤","结果一击命中!,%s痛得弯下腰","结果%s痛苦地闷哼了一声,显然受了点内伤","结果%s摇摇晃晃,一跤摔倒在地","结果%s脸色一下变得惨白,连退了好几步","结果轰的一声,%s口中鲜血狂喷而出","结果%s一声惨叫,像滩软泥般塌了下去"};public Role() {}public Role(String name, int blood, char gender) {this.name = name;this.blood = blood;this.gender = gender;setFace(gender);}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getBlood() {return blood;}public void setBlood(int blood) {this.blood = blood;}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}public String getFace() {return face;}public void setFace(char gender) {//在初始化过程中使用setFace随机设置长相Random r = new Random();if (gender == '男') {//如果人物性别是男,就从boyfaces随机一个长相int index = r.nextInt(boyfaces.length);this.face = boyfaces[index];} else if (gender == '女') {//如果人物性别是男,就从grilfaces随机一个长相int index = r.nextInt(girlfaces.length);this.face = girlfaces[index];} else {this.face = "面目狰狞";}}//输出所创建角色的所有属性public void getInfoRole() {System.out.println("姓名:" + getName());System.out.println("血量:" + getBlood());System.out.println("性别:" + getGender());System.out.println("长相:" + getFace());}//设计一个攻击方法public void attack(Role role) {//首先描述攻击招式Random r = new Random();int index = r.nextInt(attacks_desc.length);System.out.printf(attacks_desc[index], this.getName(), role.getName());System.out.println();//计算造成的伤害int hurt = r.nextInt(20) + 1;//计算被攻击者剩余血量int remainBlood = role.getBlood() - hurt;//对剩余血量做验证,如果已经为负数了,就修改为0remainBlood = remainBlood < 0 ? 0 : remainBlood;//修改被攻击者的剩余血量role.setBlood(remainBlood);//受伤情况描述if (remainBlood >= 90) {System.out.printf(injureds_desc[0], role.getName());} else if (remainBlood >= 80) {System.out.printf(injureds_desc[1], role.getName());} else if (remainBlood >= 70) {System.out.printf(injureds_desc[2], role.getName());} else if (remainBlood >= 60) {System.out.printf(injureds_desc[3], role.getName());} else if (remainBlood >= 40) {System.out.printf(injureds_desc[4], role.getName());} else if (remainBlood >= 20) {System.out.printf(injureds_desc[5], role.getName());} else if (remainBlood >= 10) {System.out.printf(injureds_desc[6], role.getName());} else {System.out.printf(injureds_desc[7], role.getName());}System.out.println();}
}
  • 创建游戏测试类进行测试
public class GameTest {public static void main(String[] args) {//1.创建2个角色Role r1 = new Role("乔峰", 100,'男');Role r2 = new Role("鸠摩智", 100,'男');r1.getInfoRole();r2.getInfoRole();//2.使用while循环实现两个角色相互攻击while (true) {//r1先攻r2r1.attack(r2);//判断被攻击者的血量,如果为0跳出输出结果、跳出循环if (r2.getBlood() == 0) {System.out.println(r1.getName() + "K.O 了" + r2.getName());break;}//r2再共计r1r2.attack(r1);//判断被攻击者的血量,如果为0跳出输出结果、跳出循环if (r1.getBlood() == 0) {System.out.println(r2.getName() + "K.O 了" + r1.getName());break;}}}
}

训练02:两个对象数组练习

  • 对象数组练习1
    • 定义数组存储3个商品对象,
    • 商品的属性:商品的id,名字,价格,库存。
    • 创建四个商品对象,并把商品对象存入到数组当中;

第一步:创建商品的javabean类

public class Goods {private String id;private String name;private double price;private  int count;public Goods() {}public Goods(String id, String name, double price, int count) {this.id = id;this.name = name;this.price = price;this.count = count;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public int getCount() {return count;}public void setCount(int count) {this.count = count;}@Overridepublic String toString() {return "Goods{" +"id='" + id + '\'' +", name='" + name + '\'' +", price=" + price +", count=" + count +'}';}
}

第二步:定义数组,创建4个商品对象,并存入数组

public class GoodsTest {public static void main(String[] args) {//1.动态初始化创建数组Goods[] goods = new Goods[4];//2.创建3个商品对象Goods g1 = new Goods("001","华为P40",5999.0,100);Goods g2 = new Goods("001","保温杯",239.0,50);Goods g3 = new Goods("001","小米笔记本",6999.0,10);Goods g4 = new Goods("001","苹果13手机",7999.0,59);//3.把商品对象存入数组中goods[0] = g1;goods[1] = g2;goods[2] = g3;goods[3] = g4;//3.打印数组for (int i = 0; i < goods.length; i++) {Goods good = goods[i];System.out.println(good.toString());}}
}
  • 对象数组练习2
    • 定义数组存储3部汽车对象;
    • 汽车的属性:品牌,价格,颜色;
    • 创建三个汽车对象,数据通过键盘录入而来,并把数据存入到数组当中;
  • 第一步:创建汽车的javabean类
public class Cars {private String brand;private int price;private String color;public Cars() {}public Cars(String brand, int price, String color) {this.brand = brand;this.price = price;this.color = color;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}@Overridepublic String toString() {return "Cars{" +"brand='" + brand + '\'' +", price=" + price +", color='" + color + '\'' +'}';}
}
  • 第二步:创建3个汽车对象,使用键盘接收汽车属性,并把3个汽车对象存入数组中
public class CarsTest {public static void main(String[] args) {//1.创建一个汽车数组Cars[] cars = new Cars[3];//2.创建3个汽车对象,使用键盘接收汽车属性,并把3个汽车对象存入数组中Scanner scanner = new Scanner(System.in);for (int i = 0; i < cars.length; i++) {//创建汽车对象,通过键盘接收汽车属性数据Cars car = new Cars();//创建汽车对象一定要写在for循环的里面,因为为我们要创建3和不同的对象System.out.println("请输入汽车的品牌:");String brand = scanner.next();car.setBrand(brand);System.out.println("请输入汽车的价格:");int price = scanner.nextInt();car.setPrice(price);System.out.println("请输入汽车的颜色:");String color = scanner.next();car.setColor(color);//把创建的汽车对象存入数组中cars[i] = car;}//3.遍历数组for (int i = 0; i < cars.length; i++) {System.out.println(cars[i].toString());}}
}
  • 以上练习中需掌握键盘输入的两套体系
  • 第一套体系:
    • nextInt();接收整数
    • nextDouble();接收小数
    • next();接收字符串
    • 遇到空格,制表符,回车就停止接受。这些符号后面的数据就不会接受了
  • 第二套体系:
    • nextLine();接收字符串
    • 可以接收空格,制表符,遇到回车才停止接受数据
  • 以上练习中还需要注意
  • Cars car = new Cars();创建汽车对象一定要写在for循环的里面,因为为我们要创建3和不同的对象;

训练03:两个对象数组练习-判断并统计

  • 对象数组练习3
    • 定义数组存储3部手机对象
    • 手机的属性:品牌,价格,颜色。
    • 要求,计算出三部手机的平均价格
  • 第一步:创建手机javabean类
public class Phone {private String brand;private int price;private String color;public Phone() {}public Phone(String brand, int price, String color) {this.brand = brand;this.price = price;this.color = color;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}@Overridepublic String toString() {return "Phone{" +"brand='" + brand + '\'' +", price=" + price +", color='" + color + '\'' +'}';}
}
  • 第一步:定义数组存储3部手机对象,并计算出三部手机的平均价格
public class PhoneTest {public static void main(String[] args) {//1.创建一个大小为3的手机数组Phone[] phones = new Phone[3];//2.创建3个手机对象Phone p1 = new Phone("小米",3999,"黑色");Phone p2 = new Phone("华为",5999,"蓝色");Phone p3 = new Phone("苹果",7999,"白色");//3.把3个手机对象存入数组中phones[0] = p1;phones[1] = p2;phones[2] = p3;int sum = 0;for (int i = 0; i < phones.length; i++) {sum = sum + phones[i].getPrice();}int vag = sum / phones.length;System.out.println(vag);}
}
  • 对象数组练习4
    • 定义数组存储4个女朋友的对象
    • 女朋友的属性:姓名、年龄、性别、爱好
    • 要求1:计算出四个女朋友的平均年龄
    • 要求2:统计年龄比平均值低的女朋友有几个?并把她们的所有信息打印出来
      第一步:创建女朋友的javabean类
public class GirlFriend {private String name;private int age;private String gender;private String hobby;public GirlFriend() {}public GirlFriend(String name, int age, String gender, String hobby) {this.name = name;this.age = age;this.gender = gender;this.hobby = hobby;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getHobby() {return hobby;}public void setHobby(String hobby) {this.hobby = hobby;}@Overridepublic String toString() {return "GirlFriend{" +"name='" + name + '\'' +", age=" + age +", gender='" + gender + '\'' +", hobby='" + hobby + '\'' +'}';}
}

第二步:创建GirlFriendTest类实现功能

public class GirlFriendTest {public static void main(String[] args) {//1.定义数 组存储4个女朋友对象GirlFriend[] girlFriends = new GirlFriend[4];//2.创建4个女朋对象GirlFriend gf1 = new GirlFriend("小诗诗",18,"萌妹子","吃零食");GirlFriend gf2 = new GirlFriend("小丹丹",19,"萌妹子","睡觉");GirlFriend gf3 = new GirlFriend("小慧慧",20,"萌妹子","看书");GirlFriend gf4 = new GirlFriend("小艳艳",21,"萌妹子","运动");//3.将4个对象添加到数组girlFriends[0] = gf1;girlFriends[1] = gf2;girlFriends[2] = gf3;girlFriends[3] = gf4;//4.计算4个女朋友的年龄之和int sum = 0;for (int i = 0; i < girlFriends.length; i++) {sum += girlFriends[i].getAge();}//5.求平均年龄int vag = sum / girlFriends.length;System.out.println(vag);//6.统计低于平均年龄的女朋友个数,并打印出来int count = 0;for (int i = 0; i < girlFriends.length; i++) {if (girlFriends[i].getAge() < vag){count++;System.out.println(girlFriends[i].toString());}}System.out.println(count);}
}

训练05/06:复杂对象数练习-添加、遍历、修改、删除

定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,
学生对象的学号,姓名各不相同学生的属性:学号,姓名,年龄。
要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。
要求2:添加完毕之后,遍历所有学生信息。
要求3:通过id删除学生信息,如果存在,则删除,如果不存在,则提示删除失败。
要求4:删除完毕之后,遍历所有学生信息。
要求5:查询数组id为“2”的学生,如果存在,则将他的年龄+1岁。
  • 代码示例:
public class StudentTest {/*定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同学生的属性:学号,姓名,年龄。要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断。要求2:添加完毕之后,遍历所有学生信息。要求3:通过id删除学生信息,如果存在,则删除,如果不存在,则提示删除失败。要求4:删除完毕之后,遍历所有学生信息。要求5:查询数组id为“2”的学生,如果存在,则将他的年龄+1岁。*/public static void main(String[] args) {//1.定义一个长度为3的数组Student[] students = new Student[3];//2.创建3个学生对象Student s1 = new Student(1, "张三", 23);Student s2 = new Student(2, "李四", 24);Student s3 = new Student(3, "王五", 24);//3.将3个学生对象存入数组中students[0] = s1;students[1] = s2;students[2] = s3;//4.创建一个新的学生对象Student s4 = new Student(5, "赵六", 26);//5.判断新创建学生对象学号的唯一性(设计一个方法判断新创建的学生对象的id,是否包含在老数组中)if (contains(students, s4.getId())) {//5.1已存在----提示id重复,添加失败System.out.println("学生id重复,添加失败");} else {//5.2不存在---添加新的学生对象//6.判断老数组是否已经存满数据(设计一个方法判断来老数组数据是否已经存满)int count = getCount(students);System.out.println(count);if (count == students.length) {//6.1数组已满,则对创建比原数组空间大1个的新数组,将新的学生对象存入其中;students = createArr(students);students[count] = s4;//打印数组printArr(students);} else {//6.2数组没有存满,直接将新学生对象存入其中students[count] = s4;//打印数组printArr(students);}}//要求3:通过id删除学生信息,如果存在,则删除,如果不存在,则提示删除失败。int index = getIndex(students, 5);if (index >= 0) {//如果存在,则删除students[index] = null;System.out.println("删除成功");//要求4:删除完毕之后,遍历所有学生信息。printArr(students);} else {//如果不存在,则提示学生id不存在,删除失败System.out.println("学生id不存在,删除失败");}//要求5:查询数组id为“2”的学生,如果存在,则将他的年龄+1岁。int index1 = getIndex(students, 2);if (index1 >= 0) {//id为2的学生存在,则将他的年龄+1岁Student stu = students[index1];int newAge = stu.getAge() + 1;stu.setAge(newAge);System.out.println("年龄+1岁成功");printArr(students);} else {//id为2的学生不存在System.out.println("学生信息不存在,修改失败");}}//设计一个方法获取待删除学生在数组中的位置/*1.我要个干嘛? 答:通过id获取学生对象在数组中的数组下标2.我需要什么? 答:需要数组,学生id3.方法的调用处是否需要继续使用方法的结果? 答:需要,如果存在则返回学生对象的数组下标,如果不存在返回-1*/public static int getIndex(Student[] arr, int id) {for (int i = 0; i < arr.length; i++) {if (arr[i] != null) {if (arr[i].getId() == id) {return i;}}}return -1;}//设计一个方法遍历数组元素public static void printArr(Student[] arr) {for (Student student : arr) {if (student != null) {System.out.println(student);}}}//设计一个方法,创建比原数组空间大1个的新数组/*1.我要个干嘛? 答:创建一个新数组,比老数组空间大1,并复制老数组元素到新数组中2.我需要什么? 答:需要老数组3.方法的调用处是否需要继续使用方法的结果? 答:需要,需要返回新创建的数组*/public static Student[] createArr(Student[] arr) {Student[] newStudents = new Student[arr.length + 1];for (int i = 0; i < arr.length; i++) {newStudents[i] = arr[i];}return newStudents;}//设计一个方法判断新创建的学生对象的id,是否包含在老数组中/*1.我要个干嘛? 答:判断新创建的学生对象的id,是否包含在老数组中2.我需要什么? 答:需要老数组,需要新创建学生对象的id3.方法的调用处是否需要继续使用方法的结果? 答:需要判断的结果*/public static boolean contains(Student[] arr, int id) {for (Student student : arr) {if (student != null) {if (student.getId() == id) {return true;}}}return false;}//设计一个方法判断来老数组数据已经存了几个数据/*1.我要个干嘛? 答:判断老数组数据已经存了几个数据2.我需要什么? 答:需要来老数组3.方法的调用处是否需要继续使用方法的结果? 答:需要返回已存入数据的数量*/public static int getCount(Student[] arr) {//创建一个统计变量int count = 0;//判断数组中元素的值是否为null,如果不是null则说明存在一个数据,count加1for (Student student : arr) {if (student != null) {count++;}}//循环结束后返回数组中已添加元素的个数return count;}
}

相关文章:

《面向对象综合训练01~05》

《面向对象综合训练01~05》 训练01&#xff1a;文字版格斗游戏 第一步&#xff1a;创建游戏角色的javabean类 public class Role {private String name;private int blood;private char gender;private String face;//长相是随机的//创建男女长相的随机数组String[] boyfaces…...

电脑为什么会提示“msvcr120.dll缺失”?“找不到msvcr120.dll文件”要怎么解决?

电脑故障排查指南&#xff1a;揭秘“msvcr120.dll缺失”的真相与解决方案 在软件开发与日常维护的广阔天地里&#xff0c;遇到系统报错或文件缺失的情况可谓家常便饭。今天&#xff0c;我将带领大家深入探讨一个常见的系统提示——“msvcr120.dll缺失”&#xff0c;并揭秘其背…...

huggingface NLP-微调一个预训练模型

微调一个预训练模型 1 预处理数据 1.1 处理数据 1.1.1 fine-tune 使用tokenizer后的token 进行训练 batch tokenizer(sequences, paddingTrue, truncationTrue, return_tensors"pt")# This is new batch["labels"] torch.tensor([1, 1])optimizer A…...

【BUG记录】Apifox 参数传入 + 号变成空格的 BUG

文章目录 1. 问题描述2. 原因2.1 编码2.2 解码 3. 解决方法 1. 问题描述 之前写了一个接口&#xff0c;用 Apifox 请求&#xff0c;参数传入一个 86 的电话&#xff0c;结果到服务器 就变成空格了。 Java 接收请求的接口&#xff1a; 2. 原因 2.1 编码 进行 URL 请求的…...

Spring AI API 介绍

目录&#xff1a; Spring AI 框架介绍 Spring AI API 核心API简介 Spring AI 提供了很多便利的功能&#xff0c;主要如下&#xff1a; AI Model API “Model API” 提供了聊天、文本转图像、音频转录、文本转语音、嵌入等功能&#xff0c;且不局限于某个固定的大模型提供商…...

【MySQL】Linux使用C语言连接安装

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…...

2024年第十五届蓝桥杯青少组C++国赛—割点

割点 题目描述 一张棋盘由n行 m 列的网格矩阵组成&#xff0c;每个网格中最多放一颗棋子。当前棋盘上已有若干棋子。所有水平方向或竖直方向上相邻的棋子属于同一连通块。 现给定棋盘上所有棋子的位置&#xff0c;如果要使棋盘上出现两个及以上的棋子连通块&#xff0c;请问…...

【软件开发】做出技术决策

文章目录 专注于核心业务除非绝对必要,不要重写代码保持技术栈简单尽量减少依赖避免范围蔓延按照业务实际情况确定优先级在做出高风险决策前构建原型跨职能团队协作信任你的团队在过去的二十年里,我曾在多家初创企业担任软件开发人员、技术负责人以及首席技术官(包括创办自己…...

Airborne使用教程

1.安装环境 前提条件&#xff1a;系统已安装Ruby 打开终端输入如下命令 gem install airborne 或者在Gemfile添加 gem airborne 然后运行bundle install 2.编写脚本 在项目中新建api_tests_spec.rb文件 以GET接口"https://www.thunderclient.com/welcome"为…...

WPF实现曲线数据展示【案例:震动数据分析】

wpf实现曲线数据展示&#xff0c;函数曲线展示&#xff0c;实例&#xff1a;震动数据分析为例。 如上图所示&#xff0c;如果你想实现上图中的效果&#xff0c;请详细参考我的内容&#xff0c;创作不易&#xff0c;给个赞吧。 一共有两种方式来实现&#xff0c;一种是使用第三…...

EasyExcel 动态设置表格的背景颜色和排列

项目中使用EasyExcel把数据以excel格式导出&#xff0c;其中设置某一行、某一列单元格的背景颜色、排列方式十分常用&#xff0c;记录下来方便以后查阅。 1. 导入maven依赖&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easy…...

【 C++11 】类的新功能

C类的新功能 一、默认成员函数二、类成员变量初始化三、default关键字四、delete关键字六、final关键字七、override关键字 一、默认成员函数 八个默认成员函数 在C11之前&#xff0c;一个类中有如下六个默认成员函数&#xff1a; 构造函数。析构函数。拷贝构造函数。拷贝赋值…...

防止SQL注入:PHP安全最佳实践

防止SQL注入&#xff1a;PHP安全最佳实践 SQL注入是一种常见的网络攻击方式&#xff0c;攻击者通过向应用程序的SQL查询中插入恶意代码&#xff0c;来获取、操控或破坏数据库中的数据。为了保护PHP应用免受SQL注入攻击&#xff0c;开发者需要遵循一系列安全最佳实践。本文将介…...

自动化生产或质量检测准备工作杂记

自动化生产或质量检测一个流程是&#xff1a; 上料位上料&#xff1a; “上料位”指的是物料被放置以供机器或设备处理的位置。“上料”指的是将物料从存储位置移动到加工或检测位置的过程。移动到对位相机位置&#xff1a; “对位相机”是一种高精度相机&#xff0c;用于精确…...

张志辰医生

在医学领域&#xff0c;北京中医药大学东方医院的张志辰副主任医师宛如一颗璀璨的明星。自 2011 年于北京中医药大学获取博士学位后&#xff0c;他便扎根临床一线&#xff0c;以精湛医术和仁心仁术&#xff0c;为众多患者排忧解难 张志辰曾先后前往北京天坛医院、广东中山医院…...

CodeMirror 如何动态更新definemode

CodeMirror 如何动态更新definemode 问题描述&#xff1a;解决方法&#xff1a; 问题描述&#xff1a; 项目中有一部分用到了CodeMirror组件&#xff0c;其高亮显示的内容需要根据最新的json动态的更新&#xff0c;需要使用definemode自定义高亮内容。 想要的效果如下&#xf…...

舵机SG90详解

舵机&#xff0c;也叫伺服电机&#xff0c;在嵌入式开发中&#xff0c;舵机作为一种常见的运动控制组件&#xff0c;具有广泛的应用。其中&#xff0c;SG90 舵机以其高效、稳定的性能特点&#xff0c;成为了许多工程师和爱好者的首选&#xff0c;无论是航模、云台、机器人、智能…...

程序设计考题汇总(四:SQL练习)

文章目录 查询结果限制返回行数 查询结果限制返回行数 select device_id from user_profile LIMIT 2;...

明达IOT平台助力工业废水运维智能化

背景简介 相较于生活污水&#xff0c;工业废水的处理挑战性更高&#xff0c;原因在于其源于多样化的工业生产流程&#xff0c;成分复杂且多变&#xff0c;可能包含重金属、有毒化学…...

深入理解 Ansible Playbook:组件与实战

目录 1 playbook介绍 2 YAML语言 2.1语法简介 2.2数据类型 3 Playbook核心组件 3.1 hosts组件 3.2 remote_user组件 3.3 task列表和action组件 3.4 handlers 3.5 tags组件 3.6 其他组件说明 1 playbook介绍 playbook 剧本是由一个或多个"play"组成的列表。…...

JavaEE初阶——多线程(线程安全-锁)

复习上节内容&#xff08;部分-掌握程度不够的&#xff09; 加锁&#xff0c;解决线程安全问题。 synchronized关键字&#xff0c;对锁对象进行加锁。 锁对象&#xff0c;可以是随便一个Object对象&#xff08;或者其子类的对象&#xff09;&#xff0c;需要关注的是&#xff…...

Stable Diffusion 提示词语法

1.提示词基础 1.提示词之间用英文逗号,分隔 2.提示词之间是可以换行的 3.权重默认为1,越靠前权重越高 4.数量控制在75个单位以内 2.提示词各种符号的意义 2.1 ()、[]、{}符号 权重值()小括号[]中括号{}大括号默认1111层()1.1[]0.9{}1.052层(()) 1.121.21[[]]0.920.81{{}}1.…...

【功能安全】安全确认

目录 01 功能安全确认介绍 02 安全确认用例 03 安全确认模板 01 功能安全确认介绍 定义: 来源...

在pycharm2024.3.1中配置anaconda3-2024-06环境

version: anaconda3-2024.06-1 pycharm-community-2024.3.1 1、安装anaconda和pycharm 最新版最详细Anaconda新手安装配置环境创建教程_anaconda配置-CSDN博客 【2024最新版】超详细Pycharm安装保姆级教程&#xff0c;Pycharm环境配置和使用指南&#xff0c;看完这一篇就够了…...

linux不同发行版中的主要差异

一、初始化系统 Linux不同发行版中的系统初始化系统&#xff08;如 System V init、Upstart 或 systemd&#xff09; System V init&#xff1a; 历史&#xff1a;System V init 是最传统的 Linux 系统初始化系统&#xff0c;起源于 Unix System V 操作系统。运行级别&#xff…...

概率论得学习和整理29: 用EXCEL 描述二项分布

目录 1 关于二项分布的基本内容 2 二项分布的概率 2.1 核心要素 2.2 成功K次的概率&#xff0c;二项分布公式 2.3 期望和方差 2.4 具体试验 2.5 概率质量函数pmf 和cdf 3 二项分布的pmf图的改进 3.1 改进折线图 3.2 如何生成这种竖线图呢 4 不同的二项分布 4.1 p0.…...

C++打造局域网聊天室第九课: 客户端队列及其处理线程

文章目录 前言一、添加客户端队列的参数初始化二、相关函数总结 前言 C打造局域网聊天室第九课&#xff1a; 客户端队列及其处理线程 一、添加客户端队列的参数初始化 在Server.cpp的 ListenThreadFunc()函数内的其他操作处实现客户端队列的添加。 首先进行部分参数的初始化…...

请求go web后端接口 java安卓端播放视频

前端代码 添加gradle依赖 implementation com.squareup.retrofit2:retrofit:2.9.0 implementation com.squareup.retrofit2:converter-gson:2.9.0 添加访问网络权限 <uses-permission android:name"android.permission.INTERNET" />允许http 请求请求 andro…...

XML Schema 复合类型 - 混合内容

XML Schema 复合类型 - 混合内容 XML Schema 是一种用于定义 XML 文档结构和内容的语言。在 XML Schema 中&#xff0c;复合类型是一种包含其他元素和/或属性的复杂类型。混合内容&#xff08;Mixed Content&#xff09;是复合类型的一种特殊形式&#xff0c;它允许元素包含其…...

第8章 搬移特性

8.1 搬移函数 模块化是优秀软件设计的核心所在&#xff0c;好的模块化能够让我在修改程序时只需理解程序的一小部分。为了设计出高度模块化的程序&#xff0c;我得保证互相关联的软件要素都能集中到一块&#xff0c;并确保块与块之间的联系易于查找、直观易懂。同时&#xff0c…...