6.24~6.29c++和java的技术总结

前面图那么多槽,吐的有点慌,咱们写程序的还是要脚踏实地的往前迈进,不废话,直接上:

 

1.c++里面int类型的变量一定要去初始化,不然你就会和一样悲剧,上代码:

 

 //查看各个学生的成绩
 cout<<"查看各个学生的成绩:"<<endl;
 for(int i=0;i<N;i++){
  Math+=stu[i].score[0];
  Chinese+=stu[i].score[1];
  English+=stu[i].score[2];
  History+=stu[i].score[3];
  Politics+=stu[i].score[4];
 }
 //各门均分
 double Mathaver = Math/5;
 double Chineseaver =Chinese/5;
 double Englishaver = English/5;
 double Historyaver = History/5;
 double Politicsaver = Politics/5;
 //输出各门总成绩和均分
 cout<<endl;
 cout<<"数学总分:    "<<"语文总分:    "<<"英语总分:   "<<"历史总分:   "<<"政治总分:   "<<endl;
 cout<<Math<<"        "<<Chinese<<"          "<<English<<"         "<<History<<"          "<<Politics<<endl;

 

说明:前面定义了几门成绩为int型,好输出的结果是-6923523什么的,你以为是地址,难倒是没有取到变量的值?不是,每个学生的没门成绩我都测试过了都是有效的整数值。其实问题出在Math 这些歌int型没有初始化就直接+=xxxx

,c++中 int型变量没有初始化默认为最小的值那就是-xxxxxxx,好,然后你拿它去和小的可怜的成绩加减不出个“地址”来吓吓你这个初学者才怪

 

2.之前写队列的时候遇到一个很好的数组copy函数很牛逼的,一显高端:

上代码:

系统提供的数组copy函数:
如果参数 src 和 dest 引用相同的数组对象,则复制的执行过程就好像首先将 srcPos 到 srcPos+length-1
位置的组件复制到一个带有 length 组件的临时数组,
然后再将此临时数组的内容复制到目标数组的 destPos 到 destPos+length-1 位置一样。
ex:
System.arraycopy(srcA,0,destA,0,srcA.length);

 

3.常用的一些类,比较舒服,我是这么觉得的:

Scanner  Random 这两个调用的时候都有点像,难倒优秀的类有共性?

 注意Scanner的作用是从命令行中获取代码,所以它一般的构造函数都有个参数(System.in)好像系统告诉你:快多点代码进来和我作伴吧

 

4. 细节的几何堆积,不解释,自己欣赏

敢说集合这么伟大的发明不重要,什么东西的存在离得开容许他存在的容器?

大集合的常用实现类:
Set: HashSet() , TreeSet()
List: Vector() , ArrayList()
Map:HashMap()  , Hashtable()

map集合我也玩了一下,里面要用到接口调用方法的,比如collection能iterator() size() 等等

 返回出一些必需的数据。我再次震精了,呵呵,厉害的接口敢直接掉方法牛的一逼
注意的是:map集合中,key和value的分别是以两种不同的对象保存的,然后key的值是唯一的,value的值不是唯一的

 

5.再讲2个细节我就讲大东西了:

①组件在窗体布局的一些方法:
 this.add(xxx,boarderlayout.east)   5个方位 east west center north south 补一下英语
 xxx.setbounds(x,x,x,x)   坐标和大小

我敢说setbounds这方法在swing界面布局谁人能出其右,坐标精确定位,大小自由调整,一个函数敲定,一览众山小。
②setsize() 和setpreferredsize()的区别:

之前我就操了,建立一个janel对象,设置了各种大小不起作用,还是分布在窗体的一个角落里啜泣;

原来他是轻量级的,只能有setpreferredsize()方法,但是它为什么又这么贱?放着个setsize()不能用?

我反正是搞不清楚。。。记住吧少年!

setsize() for frame ok?

setpreferredsize() for small thing ok?

 

6.大餐:讲讲这周我反复烦的错误:

一、大家知道g是什么东西?

看下面一一道来:

    private Graphics g;用来干吗?声明一个画布对象。画布是什么

    不是说好了java世界万物皆对象么?

    那好g就是创建的一个画布的对象,想想油画的画画在哪里?

    (如果x是窗体:

      x.setvivuable(true);

    )

    g = x.getGraphics();

     g就是个对象别想多了,这上面不是给g赋值吗?

     只不过赋值的是抽象的一个画布,x的画布!

 

关于这个画板我有点说的:

public void showUI extends JFrame(){

  JFrame jf = new JFrame();

}

public void paint(Graphics g){

  super.paint(g);

}

你可能已经发现了 这个不能实现重绘,为什么?

因为,有两个窗体,我重绘的是showUI窗体,然后画布是取的第二个jframe jf!

 

我又犯了类似的很多错误,比如监听加给了jframe没嫁给jpanel导致坐标出错啊,

重绘加错给了jframe 没有加给jpanel都会出现你不会得到想要的结果,事实就是这么残酷!

 

所以我想说:在你为整个界面添加什么组件以后,已经要检查一下重绘、监听等等还有一些方法的调用时候和你修改以后想要的结果对的上号

 

二、我想说一下匿名内部类:

第一次接触匿名,我是在写画板的时候,呵呵,就是最近。

我看到这个玩意比创建一个监听器类来的方便:

看:

创建监听器类的方法:

ButttonListener bl = new ButtonListener(参数)

x.add(bl)

还要让bl类去实现一个actionlistener类,多麻烦

 

看看人家匿名:x.add(new ActionListener{

   actionperformed(Event e){

 

   }

});

 

多简单!

 

我首先是记住这种格式,哦,添加监听是吧,就捞一个匿名内部类来解决

其实我看到的还不止,像boss左就给了我一种新的匿名内部类,让他还能解决重绘的那桩子事

这是画棋盘时候的调用

JPanel jpnlft = new JPanel(){
   /**
    * 重写绘制窗体的方法
    */
   public void paint(Graphics g){
    //重写绘制窗体
    super.paint(g);
    //绘制棋盘的方法,先画横线再画竖线
    for(int i=0;i<Config.rows;i++){
     g.drawLine(Config.xo,Config.y0+Config.size*i , Config.xo+(Config.columns-1)*Config.size,Config.y0+Config.size*i );
    }
    //画竖线
    for(int j=0;j<Config.columns;j++){
     g.drawLine(Config.xo+j*Config.size, Config.y0,Config.xo+j*Config.size , Config.y0+(Config.rows-1)*Config.size);
    }
   }
  };

这里我找到了匿名的几个蛮不错的定义,帮助我们更好理解和使用:

1,一个类用于继承其他类或是实现接口,并不需要增加额外的方法,只是对继承方法的实现或是覆盖。
2,只是为了获得一个对象实例,不需要知道其实际类型。
3,类名没有意义,也就是不需要使用到。

我反正是懂了,你们呢?

 

好了时间不多,人有点不舒服先3了,下期再见!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: jxbrowser是一个基于Java的Web浏览器组件,支持多种操作系统和主流的Web技术。maven是一个Java的开源构建工具,它可以帮助开发者自动管理依赖,构建项目和发布软件。jxbrowser 6.24.3 maven则是指使用maven来构建jxbrowser 6.24.3版本的应用程序。 在使用jxbrowser 6.24.3 maven构建项目之前,需要在pom.xml文件中添加相关依赖,包括jxbrowser的核心库、平台支持库、maven插件以及许可证文件。之后可以使用maven命令行工具或者通过IDE集成的maven插件来构建应用程序。 使用jxbrowser 6.24.3 maven可以帮助开发者快速构建基于jxbrowser的应用程序,并且通过maven的依赖管理机制,可以轻松地升级和切换jxbrowser的版本。除此之外,maven还可以帮助开发者自动下载和管理相关的依赖库,减轻了开发者的负担。 总之,使用jxbrowser 6.24.3 maven可以让开发者更加方便地构建基于jxbrowser的应用程序,提高开发效率和软件质量。 ### 回答2: JxBrowser 6.24.3是一个用于Java Swing应用程序和JavaFX应用程序的库,它提供了嵌入式浏览器解决方案。使用该库可以将现代浏览器的功能整合到应用程序中,以便在应用程序中呈现HTML内容。此外,JxBrowser还提供了很多的API接口,使得Java开发人员能够方便地控制浏览器的行为,比如支持HTML5,JavaScript和CSS3,以及定制浏览器的样式和行为。 Maven是一个Java项目管理工具,JxBrowser库同样也提供了Maven库,使得开发人员能够更方便地集成JxBrowser到他们的项目中。使用Maven可以自动管理项目依赖,从而减少项目集成的复杂度。对于需要在Java Swing应用程序和JavaFX应用程序中集成浏览器的开发人员来说,Maven集成JxBrowser可以帮助他们快速创建高质量的应用程序,从而提升生产效率。 总之,JxBrowser 6.24.3 maven是一个非常方便的工具,它可以让开发人员更加轻松地将现代浏览器嵌入到他们的Java应用程序中。使用该库可以为应用程序带来新的功能和体验。同时,Maven也为开发人员提供了自动化管理依赖的能力,从而简化了集成步骤。 ### 回答3: JxBrowser是一个基于Google Chromium的Java浏览器控件。6.24.3是JxBrowser的版本号,它是该工具的一个更新版本。 Maven是Java项目管理工具,可以通过它来配置和管理依赖项。 通过Maven引入JxBrowser 6.24.3,可以在Java项目中使用JxBrowser开发浏览器的相关功能。在Maven的pom.xml文件中,需添加JxBrowser的依赖。 在使用JxBrowser进行Java开发时,可以实现浏览器的自定义化,如设置UA,Cookie,代理等。同时还可以通过JxBrowser实现网页截图、读取页面源码、模拟键盘、鼠标操作等功能。 总之,通过引入JxBrowser 6.24.3 Maven依赖,可以让Java开发者更方便地使用JxBrowser,并实现更多的浏览器控制和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值