ooday08 2022.01.19 面向对象第八天:
面向对象第八天:
回顾:
-
接口:
引用数据类型,interface定义,只能包含常量和抽象方法
不能被实例化,需要被实现,实现类:必须重写所有抽象方法
一个类可以实现多个接口,用逗号分隔,若又继承又实现时应先继承后实现
接口可以继承接口
意义:封装部分派生类所共有的属性和行为----实现多继承
是一个标准、是一种规范
笔记:
1、多态:
方法(行为就是方法)也是多态;
(1)表现:
①同一个对象被造型为不同的类型时,有不同的功能
-----对象的多态:我、你、水…所有对象都是多态的(明天体会)
②特点:同一类型的引用指向不同对象时,有不同的实现
-----行为的多态:cut()、move()、getImage()、getScore()-所有的抽象方法都是多态的
人 p1 = new 理发师();
人 p2 = new 外科医生();
(2)向上造型/自动类型转换:seaobject 0 = new Battleship();
①超类型的引用指向派生类的对象
②能点出来什么,看引用的类型:p1.cut(); p2.cut();
③能造型成为的数据类型有2种:超类+所实现的接口
(3)强制类型转换,成功的条件只有如下两种:
①引用所指向的对象,就是该类型
②引用所指向的对象,实现了该接口或继承了该类
(4)强转时若不符合如上条件,则发生ClassCastException类型转换异常
建议:在强转之前先通过instanceof来判断引用的对象是否是该类型
package ooday08;
public class MultiTypeDemo {public static void main(String[] args){/*强制类型转换,成功的条件只有如下两种:①引用o所指向的对象(是Boo()),就是该类型(Boo类型) “数据类型 引用类型变量 = new 对象” 数据类型:Aoo 引用:就是引用类型变量 指向:就是等号= 对象:new出来的对象Boo②引用所指向的对象,实现了该接口或继承了该类*/Aoo o = new Boo(); //o的对象是BooBoo o1 = (Boo)o; //①引用o所指向的对象,就是Boo类型。 【把o赋给Boo回报错 因为o是Aoo,大转小,需要强转,o的前边加(Boo)】Inter o2 = (Inter)o; //②引用所指向的对象,实现了Inter接口//Coo o3 = (Coo)o; //-运行时ClassCastException类型转换异常if(o instanceof Coo){ //false,先判断Coo o4 = (Coo)o; //再强转}else{System.out.println("o不是Coo类型");}/*System.out.println(o instanceof Boo);//trueSystem.out.println(o instanceof Inter);//trueSystem.out.println(o instanceof Coo);//false */}
}interface Inter{}
class Aoo{}
class Boo extends Aoo implements Inter{}
class Coo extends Aoo{}
补充:
-
接口可以继承多个接口:
interface Inter1{void show(); } interface Inter2{void test(); } interface Inter3 extends Inter1,Inter2{void say(); }
-
何时需要强转?
---- 想访问的属性/行为在超类中没有,必须强转,强转之前先instanceof判断
-
ArrayIndexOutOfBoundsException:数组下标越界异常
NullPointerException:空指针异常
ClassCastException:类型转换异常
-
此图片在作业2、深水炸弹与潜艇的碰撞中会用的到:
面向对象第八天作业:
1、水雷入场:后半段
2、深水炸弹与潜艇的碰撞
3、画分和画命
1、水雷入场:后半段。。参考代码:
package cn.tedu.submarine;
import javax.swing.JFrame;
import javax.swing.JPanel; //1.
import java.awt.Graphics;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Random;
import java.util.Arrays;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;/** 整个游戏世界 */
public class World extends JPanel { //2.public static final int WIDTH = 641; /** 窗口的宽 */public static final int HEIGHT = 479; /** 窗口的高 *///如下这一堆为窗口中所显示的对象private Battleship ship = new Battleship(); //战舰private SeaObject[] submarines = {}; //潜艇(侦察潜艇、鱼雷潜艇、水雷潜艇)数组private Mine[] mines = {}; //水雷数组private Bomb[] bombs = {}; //深水炸弹数组/** 生成潜艇(侦察潜艇、鱼雷潜艇、水雷潜艇)对象 */public SeaObject nextSubmarine(){Random rand = new Random(); //随机数对象int type = rand.nextInt(20); //0到19if(type<10){ //0到9时,返回侦察潜艇对象return new ObserveSubmarine();}else if(type<15){ //10到14,返回鱼雷潜艇对象return new TorpedoSubmarine();}else{ //15到19时,返回水雷潜艇对象return new MineSubmarine();}}private int subEnterIndex = 0; //潜艇入场计数/** 潜艇(侦察潜艇、鱼雷潜艇、水雷潜艇)入场 */public void submarineEnterAction(){ //每10毫秒走一次subEnterIndex++; //每10毫秒增1if(subEnterIndex%40==0) { //每400(40*10)毫秒走一次SeaObject obj = nextSubmarine(); //获取潜艇对象submarines = Arrays.copyOf(submarines,submarines.length+1); //扩容submarines[submarines.length-1] = obj; //将obj添加到submarines的最后一个元素上}}private int mineEnterIndex = 0; //水雷入场计数/** 水雷入场 */public void mineEnterAction(){ //每10毫秒走一次mineEnterIndex++; //每10毫秒增1if(mineEnterIndex%100==0){ //每1秒(100*10)走一次for(int i=0;i<submarines.length;i++){ //遍历所有潜艇if(submarines[i] instanceof MineSubmarine){ //若潜艇为水雷潜艇MineSubmarine ms = (MineSubmarine)submarines[i]; //将潜艇强转为水雷潜艇类型Mine obj = ms.shootMine(); //获取水雷对象mines = Arrays.copyOf(mines,mines.length+1); //扩容mines[mines.length-1] = obj; //将obj添加到最后一个元素上}}}}/** 海洋对象移动 */public void moveAction(){ //每10毫秒走一次for(int i=0;i<submarines.length;i++){ //遍历所有潜艇submarines[i].move(); //潜艇移动}for(int i=0;i<mines.length;i++){ //遍历所有水雷mines[i].move(); //水雷移动}for(int i=0;i<bombs.length;i++){ //遍历所有深水炸弹bombs[i].move(); //深水炸弹移动}}/** 删除越界的海洋对象 */public void outOfBoundsAction(){ //每10毫秒走一次for(int i=0;i<submarines.length;i++){ //遍历所有潜艇if(submarines[i].isOutOfBounds()){ //越界了submarines[i] = submarines[submarines.length-1]; //将越界潜艇替换为最后一个元素submarines = Arrays.copyOf(submarines,submarines.length-1); //缩容(缩掉最后一个元素)}}for(int i=0;i<mines.length;i++){ //遍历所有水雷if(mines[i].isOutOfBounds()){ //越界了mines[i] = mines[mines.length-1]; //将越界水雷替换为最后一个元素mines = Arrays.copyOf(mines,mines.length-1); //缩容(缩掉最后一个元素)}}for(int i=0;i<bombs.length;i++){ //遍历所有深水炸弹if(bombs[i].isOutOfBounds()){ //越界了bombs[i] = bombs[bombs.length-1]; //将越界炸弹替换为最后一个元素bombs = Arrays.copyOf(bombs,bombs.length-1); //缩容(缩掉最后一个元素)}}}/** 启动程序的执行 */public void action(){KeyAdapter k = new KeyAdapter() { //不要求掌握/** 重写keyReleased()按键抬起事件 */public void keyReleased(KeyEvent e) { //当按键抬起时会自动触发--不要求掌握if(e.getKeyCode()==KeyEvent.VK_SPACE){ //若抬起的是空格键--不要求掌握Bomb obj = ship.shoot(); //获取深水炸弹对象bombs = Arrays.copyOf(bombs,bombs.length+1); //扩容bombs[bombs.length-1] = obj; //将obj添加到bombs的最后一个元素上}if(e.getKeyCode()==KeyEvent.VK_LEFT){ //若抬起的是左键头--不要求掌握ship.moveLeft(); //战舰左移}if(e.getKeyCode()==KeyEvent.VK_RIGHT){ //若抬起的是右键头--不要求掌握ship.moveRight(); //战舰右移}}};this.addKeyListener(k); //不要求掌握Timer timer = new Timer(); //定时器对象int interval = 10; //定时间隔(以毫秒为单位)timer.schedule(new TimerTask() {public void run() { //定时干的事(每10毫秒自动发生)submarineEnterAction(); //潜艇(侦察潜艇、鱼雷潜艇、水雷潜艇)入场mineEnterAction(); //水雷入场moveAction(); //海洋对象移动outOfBoundsAction(); //删除越界的海洋对象repaint(); //重画(重新调用paint()画)}}, interval, interval); //定时计划}/** 重写paint()画 g:画笔 */public void paint(Graphics g){ //每10毫秒走一次Images.sea.paintIcon(null,g,0,0); //画海洋图ship.paintImage(g); //画战舰for(int i=0;i<submarines.length;i++){ //遍历潜艇数组submarines[i].paintImage(g); //画潜艇}for(int i=0;i<mines.length;i++){mines[i].paintImage(g);}for(int i=0;i<bombs.length;i++){bombs[i].paintImage(g);}}public static void main(String[] args) {JFrame frame = new JFrame(); //3.World world = new World();world.setFocusable(true);frame.add(world);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(WIDTH+16, HEIGHT+39);frame.setLocationRelativeTo(null);frame.setVisible(true); //1)设置窗口可见 2)尽快调用paint()方法world.action(); //启动程序的执行}
}//注:其余类没有变化,此处省略
2、深水炸弹与潜艇的碰撞。。参考代码:
package day08;
import javax.swing.ImageIcon;
import java.awt.Graphics;
import java.util.Random;
//海洋对象
public abstract class SeaObject {public static final int LIVE = 0;public static final int DEAD = 1;protected int state = LIVE; //当前状态protected int width;protected int height;protected int x;protected int y;protected int speed;public SeaObject(int width,int height){this.width = width;this.height = height;x = -width;Random rand = new Random();y = rand.nextInt(World.HEIGHT-height-150)+150;speed = rand.nextInt(3)+1;}public SeaObject(int width,int height,int x,int y,int speed){this.width = width;this.height = height;this.x = x;this.y = y;this.speed = speed;}public abstract void move();public abstract ImageIcon getImage();public boolean isLive(){return state==LIVE;}public boolean isDead(){return state==DEAD;}public void paintImage(Graphics g){if(isLive()){this.getImage().paintIcon(null,g,x,y);}}/** 检测潜艇越界 */public boolean isOutOfBounds(){return x>= World.WIDTH; //x>=窗口宽,即为越界了}/** 检测碰撞 */public boolean isHit(SeaObject other){//假设this指代潜艇,other指代炸弹int x1 = this.x-other.width; //x1:潜艇的x-炸弹的宽int x2 = this.x+this.width; //x2:潜艇的x+潜艇的宽int y1 = this.y-other.height; //y1:潜艇的y-炸弹的高int y2 = this.y+this.height; //y2:潜艇的y+潜艇的高int x = other.x; //x:炸弹的xint y = other.y; //y:炸弹的yreturn x>=x1 && x<=x2&&y>=y1 && y<=y2; //x在x1与x2之间,并且,y在y1与y2之间,即为撞上了}/** 海洋对象去死 */public void goDead(){state = DEAD; //将状态修改为DEAD死了的}
}package day08;
import javax.swing.ImageIcon;
//战舰
public class Battleship extends SeaObject {private int life;public Battleship(){super(66,26,270,124,20);life = 5;}public void step(){System.out.println("战舰移动");}public ImageIcon getImage(){return Images.battleship;}public Bomb shoot(){return new Bomb(this.x,this.y);}public void moveLeft(){x-=speed;}public void moveRight(){x+=speed;}public void addLife(int num){life += num;}
}package day08;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.util.Arrays;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
//整个游戏世界
public class World extends JPanel {public static final int WIDTH = 641;public static final int HEIGHT = 479;private Battleship ship = new Battleship(); //战舰private SeaObject[] submarines = {}; //潜艇(侦察潜艇、鱼雷潜艇、水雷潜艇)private Mine[] mines = {}; //水雷private Bomb[] bombs = {}; //深水炸弹/** 随机生成潜艇 */public SeaObject nextSubmarine(){Random rand = new Random();int type = rand.nextInt(20);if(type<10){return new ObserveSubmarine();}else if(type<15){return new TorpedoSubmarine();}else{return new MineSubmarine();}}private int subEnterIndex = 0;/** 潜艇入场 */public void submarineEnterAction(){ //每10毫秒走一次subEnterIndex++;if(subEnterIndex%40==0){ //每40毫秒SeaObject obj = nextSubmarine();submarines = Arrays.copyOf(submarines,submarines.length+1);submarines[submarines.length-1] = obj;}}private int mineEnterIndex = 0;/** 雷(鱼雷、水雷)入场 */public void MineEnterAction(){mineEnterIndex++;if(mineEnterIndex%100==0){for(int i=0;i<submarines.length;i++){if(submarines[i] instanceof MineSubmarine){MineSubmarine ms = (MineSubmarine)submarines[i];Mine obj = ms.shootMine();mines = Arrays.copyOf(mines,mines.length+1);mines[mines.length-1] = obj;}}}}/** 海洋对象移动 */public void moveAction(){for(int i=0;i<submarines.length;i++){submarines[i].move();}for(int i=0;i<mines.length;i++){mines[i].move();}for(int i=0;i<bombs.length;i++){bombs[i].move();}}/** 删除越界的对象 */public void outOfBoundsAction(){for(int i=0;i<submarines.length;i++){if(submarines[i].isOutOfBounds() || submarines[i].isDead()){submarines[i] = submarines[submarines.length-1];submarines = Arrays.copyOf(submarines,submarines.length-1);}}for(int i=0;i<mines.length;i++){if(mines[i].isOutOfBounds() || mines[i].isDead()){mines[i] = mines[mines.length-1];mines = Arrays.copyOf(mines,mines.length-1);}}for(int i=0;i<bombs.length;i++){if(bombs[i].isOutOfBounds() || bombs[i].isDead()){bombs[i] = bombs[bombs.length-1];bombs = Arrays.copyOf(bombs,bombs.length-1);}}}private int score = 0; //玩家得分//深水炸弹与潜艇的碰撞public void bombBangAction(){for(int i=0;i<bombs.length;i++){Bomb b = bombs[i];for(int j=0;j<submarines.length;j++){SeaObject s = submarines[j];if(b.isLive() && s.isLive() && s.isHit(b)){b.goDead();s.goDead();if(s instanceof EnemyScore){EnemyScore es = (EnemyScore)s;score += es.getScore();}if(s instanceof EnemyLife){EnemyLife ea = (EnemyLife)s;int num = ea.getLife();ship.addLife(num);}}}}}/** 启动程序的运行 */public void action(){KeyAdapter k = new KeyAdapter(){public void keyPressed(KeyEvent e) {if(e.getKeyCode() == KeyEvent.VK_SPACE){Bomb obj = ship.shoot(); //深水炸弹入场bombs = Arrays.copyOf(bombs,bombs.length+1);bombs[bombs.length-1] = obj;}if(e.getKeyCode() == KeyEvent.VK_LEFT){ship.moveLeft();}if(e.getKeyCode() == KeyEvent.VK_RIGHT){ship.moveRight();}}};this.addKeyListener(k);Timer timer = new Timer();int interval = 10;timer.schedule(new TimerTask() {public void run() {submarineEnterAction(); //潜艇(侦察、水雷、鱼雷)入场MineEnterAction(); //水雷入场moveAction(); //海洋对象移动outOfBoundsAction(); //删除越界的对象bombBangAction(); //深水炸弹与潜艇的碰撞repaint();}}, interval, interval);}public void paint(Graphics g){Images.sea.paintIcon(null,g,0,0); //画海洋图ship.paintImage(g);for(int i=0;i<submarines.length;i++){submarines[i].paintImage(g);}for(int i=0;i<mines.length;i++){mines[i].paintImage(g);}for(int i=0;i<bombs.length;i++){bombs[i].paintImage(g);}}public static void main(String[] args) {JFrame frame = new JFrame();World world = new World();world.setFocusable(true);frame.add(world);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(WIDTH+16, HEIGHT+39);frame.setLocationRelativeTo(null);frame.setVisible(true);world.action();}
}//注:其余类没有变化,此处省略
3、画分和画命。。参考代码:
package day08;
import javax.swing.ImageIcon;
//战舰
public class Battleship extends SeaObject {private int life;public Battleship(){super(66,26,270,124,20);life = 5;}public void step(){System.out.println("战舰移动");}public ImageIcon getImage(){return Images.battleship;}public Bomb shoot(){return new Bomb(this.x,this.y);}public void moveLeft(){x-=speed;}public void moveRight(){x+=speed;}public void addLife(int num){life += num;}public int getLife(){return life;}
}package day08;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.util.Arrays;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
//整个游戏世界
public class World extends JPanel {public static final int WIDTH = 641;public static final int HEIGHT = 479;private Battleship ship = new Battleship(); //战舰private SeaObject[] submarines = {}; //潜艇(侦察潜艇、鱼雷潜艇、水雷潜艇)private Mine[] mines = {}; //水雷private Bomb[] bombs = {}; //深水炸弹/** 随机生成潜艇 */public SeaObject nextSubmarine(){Random rand = new Random();int type = rand.nextInt(20);if(type<10){return new ObserveSubmarine();}else if(type<15){return new TorpedoSubmarine();}else{return new MineSubmarine();}}private int subEnterIndex = 0;/** 潜艇入场 */public void submarineEnterAction(){ //每10毫秒走一次subEnterIndex++;if(subEnterIndex%40==0){ //每40毫秒SeaObject obj = nextSubmarine();submarines = Arrays.copyOf(submarines,submarines.length+1);submarines[submarines.length-1] = obj;}}private int mineEnterIndex = 0;/** 雷(鱼雷、水雷)入场 */public void MineEnterAction(){mineEnterIndex++;if(mineEnterIndex%100==0){for(int i=0;i<submarines.length;i++){if(submarines[i] instanceof MineSubmarine){MineSubmarine ms = (MineSubmarine)submarines[i];Mine obj = ms.shootMine();mines = Arrays.copyOf(mines,mines.length+1);mines[mines.length-1] = obj;}}}}/** 海洋对象移动 */public void moveAction(){for(int i=0;i<submarines.length;i++){submarines[i].move();}for(int i=0;i<mines.length;i++){mines[i].move();}for(int i=0;i<bombs.length;i++){bombs[i].move();}}/** 删除越界的对象 */public void outOfBoundsAction(){for(int i=0;i<submarines.length;i++){if(submarines[i].isOutOfBounds() || submarines[i].isDead()){submarines[i] = submarines[submarines.length-1];submarines = Arrays.copyOf(submarines,submarines.length-1);}}for(int i=0;i<mines.length;i++){if(mines[i].isOutOfBounds() || mines[i].isDead()){mines[i] = mines[mines.length-1];mines = Arrays.copyOf(mines,mines.length-1);}}for(int i=0;i<bombs.length;i++){if(bombs[i].isOutOfBounds() || bombs[i].isDead()){bombs[i] = bombs[bombs.length-1];bombs = Arrays.copyOf(bombs,bombs.length-1);}}}private int score = 0; //玩家得分//深水炸弹与潜艇的碰撞public void bombBangAction(){for(int i=0;i<bombs.length;i++){Bomb b = bombs[i];for(int j=0;j<submarines.length;j++){SeaObject s = submarines[j];if(b.isLive() && s.isLive() && s.isHit(b)){b.goDead();s.goDead();if(s instanceof EnemyScore){EnemyScore es = (EnemyScore)s;score += es.getScore();}if(s instanceof EnemyLife){EnemyLife ea = (EnemyLife)s;int num = ea.getLife();ship.addLife(num);}}}}}/** 启动程序的运行 */public void action(){KeyAdapter k = new KeyAdapter(){public void keyPressed(KeyEvent e) {if(e.getKeyCode() == KeyEvent.VK_SPACE){Bomb obj = ship.shoot(); //深水炸弹入场bombs = Arrays.copyOf(bombs,bombs.length+1);bombs[bombs.length-1] = obj;}if(e.getKeyCode() == KeyEvent.VK_LEFT){ship.moveLeft();}if(e.getKeyCode() == KeyEvent.VK_RIGHT){ship.moveRight();}}};this.addKeyListener(k);Timer timer = new Timer();int interval = 10;timer.schedule(new TimerTask() {public void run() {submarineEnterAction(); //潜艇(侦察、水雷、鱼雷)入场MineEnterAction(); //水雷入场moveAction(); //海洋对象移动outOfBoundsAction(); //删除越界的对象bombBangAction(); //深水炸弹与潜艇的碰撞repaint();}}, interval, interval);}public void paint(Graphics g){Images.sea.paintIcon(null,g,0,0); //画海洋图ship.paintImage(g);for(int i=0;i<submarines.length;i++){submarines[i].paintImage(g);}for(int i=0;i<mines.length;i++){mines[i].paintImage(g);}for(int i=0;i<bombs.length;i++){bombs[i].paintImage(g);}g.drawString("SCORE: "+score,200,50);g.drawString("LIFE: "+ship.getLife(),400,50);}public static void main(String[] args) {JFrame frame = new JFrame();World world = new World();world.setFocusable(true);frame.add(world);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(WIDTH+16, HEIGHT+39);frame.setLocationRelativeTo(null);frame.setVisible(true);world.action();}
}//注:其余类没有变化,此处省略
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 【Python入门教程】第27篇 函数之文档注释
本篇我们介绍一下如何利用文档注释(docstrings)为函数增加帮助文档。 help() 函数 Python 提供了一个内置的函数 help(),用于显示函数的帮助文档。 以下示例输出了 print() 函数的帮助文档: help(print)输出结果如下ÿ…...
2024/4/14 13:29:53 - .net NuGet 错误 NU1105
NuGet 错误 NU1105 无法读取"ProjectFile"的项目信息。 项目文件可能无效或缺少还原所需的目标。 问题 项目文件存在,但没有为此文件提供还原信息。 解决方案 命令行 从命令行中,这可能表示文件已损坏或 NuGet.targets 未导入 。 若要导…...
2024/4/14 13:30:03 - Java笔记-多维数组(二维数组入门)
目录二维数组介绍二维数组的使用二维数组介绍 二维数组的使用 public class TwoDimensionalArray01 { //编写一个main方法public static void main(String[] args) {/*请用二维数组输出如下图形0 0 0 0 0 00 0 1 0 0 0 0 2 0 3 0 00 0 0 0 0 0*///什么是二维数组: /…...
2024/4/14 13:29:48 - 暴力解决无效的目标发行版: 11
看以下八个地方是否一致,如果一致那我也不知道了 如果是springboot项目还可以检查pom.xml文件...
2024/4/15 0:31:56 - 用gets()函数输入字符串(解决此句子有几个单词问题)
字符串的输入和输出方式可以用sanf()函数和gets()函数 在用scanf()函数输入字符串时,因为数组名代表数组的起始位置,所以,地址项用字符数组名,格式字符使用s;在输入数据时,以空格或…...
2024/4/14 13:29:53 - 使用辗转相除法求两个数的最大公约数
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() {int m, n, r;scanf("%d%d", &m, &n);while (m % n){r m % n;m n;n r;}printf("%d\n", n);return 0; }...
2024/4/18 16:09:02 - 使用merge合并行
【应用场景:】要实现比较两个表的某个列的数据的差异,然后根据比较结果的是否相同(WHEN MATCHED表示匹配上)进行相应的操作,采用Oracle系统的MERGE语句可以实现。 【语句实例】 MERGE INTO products p USING newprodu…...
2024/4/18 18:11:07 - Word排版技巧:公式居中,编号居右
方法 第一步:输入公式和序号;第二步:在公式和序号之间加入“#”符号;第三步:把鼠标光标放到公式的最后(一定要在公式内);第四步:按下“enter”键。 效果...
2024/4/14 13:30:08 - SpringCloud第10讲:网关SpringCloudGateway
SpringCloud生态的网关(第二代),未来会取代Zuul(第一代),Gateway是基于Netty(网络通信框架,可以实现高性能的服务端和客户端)、Reactor以及WebFlux(基于React…...
2024/4/14 13:29:58 - Web应用开发中的本地存储限额localStroage Quota
近几年互联网络的发展似乎进入一个瓶颈期。不独一时一地,全球趋势大致如此,大概处于传统互联网络已经日至成熟,而创新技术在萌芽期尚未获得突破之际。所以传统互联网络技术只好在细节上打磨、内卷(involution)和进化&a…...
2024/4/20 14:20:45 - 【Java习题1】生成随机数并查重排序
1.题目: 2.思路:(1)掌握random函数实现产生随机数的方法 (2)应用 TreeSet实现类中添加的元素是从小到大并且Set中无重复的性质 3.源代码: package com.fan.homework1;import java.util.Rando…...
2024/4/17 22:46:00 - vue+element中动态组件component的使用
动态生成表单 用法(来源于官网) <!-- 动态组件由 vm 实例的 componentId property 控制 --> <component :is"componentId"></component><!-- 也能够渲染注册过的组件或 prop 传入的组件 --> <component :is"…...
2024/5/6 7:44:07 - XML(Extensible Markup Language)
XML(Extensible Markup Language) 文章目录 XML Tips 特点: ① XML与操作系统、编程语言的开发平台无关 ② 实现不同系统之间的数据交换作用: ① 数据交互 ② 配置应用程序和网站 ③ Ajax基石<?xml ver…...
2024/4/14 13:31:09 - 如何抢占亚马逊坑位?通过算法漏洞提升排名
亚马逊封号来的起始汹汹,打击了卖家刷单、刷屏的气焰,流量可以说是在现在最头疼的问题。但是砸钱买广告也很肉疼,之前的文章也有介绍,亚马逊广告费用上涨严重,所以如何在这种时期优化好自己的产品,推动曝光…...
2024/4/25 6:42:27 - Java-Reflect-05-构造器操作
/*** Author: Echo* 构造器操作* param clz* throws Exception*/public static void opeConstructor(Class clz)throws Exception{// 获取类中定义的所有的公有构造方法Constructor[] clzPublicConstructors clz.getConstructors();System.out.println(clz "…...
2024/4/19 10:01:02 - 单点登录EASY-SSO 使用说明
个人博客纯净版 EASY-SSO 使用说明 | 代码搬运工 EASY-SSO gitee地址 EASY-SSO: 单点登录(支持web和app客户端、支持springboot客户端和非springboot客户端) EASY-SSO EASY-SSO是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。拥有”轻量级、分…...
2024/4/28 7:59:44 - 永久免费的pdf编辑器
pdfboss转换器(https://www.lihun360.com)允许打开很多PDF文件进行拷贝粘贴和删除页面。 pdfboss转换器可以一次打开多个PDF文件,在文档间进行复制、粘贴、删除。通过图片或者其它PDF资源,很容易地创建一个PDF文件。您可以对一个P…...
2024/4/14 13:30:39 - Java-Reflect-03-属性操作
/*** Author: Echo* 属性操作* param clz*/public static void opeFields(Class clz) throws Exception{Boy boy (Boy) clz.newInstance();// 获取所有公有(public)的属性,包含继承Field[] clzFields clz.getFields();System.out.println(clz " public 修饰…...
2024/4/19 17:58:48 - uni-app 187多进程实现(二)
/app/extend/context.js // app/extend/context.js var qr require(qr-image); module.exports {// 成功提示apiSuccess(data , msg ok, code 200) {this.body { msg, data };this.status code;},// 失败提示apiFail(data , msg fail, code 400) {this.body { msg,…...
2024/4/14 13:31:09 - 客户端负载均衡(Ribbon)
服务器端负载均衡 负载均衡是我们处理高并发、缓解网络压力和进行服务器扩容的重要手段之一,但是一般情况下我们所说的负载均衡通常都是指服务器端负载均衡,服务器端负载均衡又分为两种,一种是硬件负载均衡,还有一种是软件负载均衡…...
2024/4/14 13:30:39
最新文章
- CI/CD笔记.Gitlab系列.新用户管理
CI/CD笔记.Gitlab系列 新用户管理 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_285502…...
2024/5/6 9:05:19 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 【实战解析】YOLOv9全流程训练至优化终极指南
【实战解析】YOLOv9全流程训练至优化终极指南 0.引言1.环境准备2.数据预处理(1)数据准备(2)按比例划分数据集(3)xml转txt脚本(4)配置文件 3.模型训练(1)单GPU…...
2024/5/5 1:29:42 - 面试经典算法系列之双指针1 -- 合并两个有序数组
面试经典算法题1 – 合并两个有序数组 LeetCode.88 公众号:阿Q技术站 问题描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#…...
2024/5/5 8:39:32 - Go语言中如何实现继承
完整课程请点击以下链接 Go 语言项目开发实战_Go_实战_项目开发_孔令飞_Commit 规范_最佳实践_企业应用代码-极客时间 Go语言中没有传统意义上的类和继承的概念,但可以通过嵌入类型(embedded types)来实现类似的功能。嵌入类型允许一个结构…...
2024/5/5 8:37:47 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/4 23:54:56 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/4 23:54:56 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/4 23:55:17 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/4 23:55:16 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/4 23:55:06 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/4 23:55:01 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57