精华内容
下载资源
问答
  • 前言:今天准备写一个数据库连接池,想着一些固定的参数,放到外部文件里面,而不用直接相这样,Class.forName("com.mysql.jdbc.Driver");写死在代码里面。于是新建了一个包config,在包里面新建一个dbpool....

    前言:今天准备写一个数据库连接池,想着把一些固定的参数,放到外部文件里面,而不用直接相这样,Class.forName("com.mysql.jdbc.Driver");写死在代码里面。于是新建了一个包config,在包里面新建一个dbpool.properties的文件,用来存放一些固定的字符串,然后在DBPool.java中新建一个方法,用于读取properties文件的内容。于是得通过文件路径获取输入流,再通过Properties类的load();方法得到文件内容,文件就来了。

    问题:文件的路径改怎么写呢?以前写输入输出流代码的时候,直接就进入系统文件管理器里面找到文件路径就ok了,就想这样,D:\java_src\myeclipse\iShop\src\com\jake\config\dbpool.properties,直接粘到输入流就行了,这样,当然在你的电脑里运行自己写的程序,当然没有问题,可是你的项目如果一旦布置到其他的电脑上,也许路径就不是这样了,甚至布置到其他的系统上,这种路径更是不可能存在了,如何获取文件路径呢?

    解决:看到下面的例子就就会明白了,以后这个文件的路径问题就好解决了。

    首先这是我的项目结构图,文件在config包里面,而需要在DBPool类里面用上文件里的数据。

    74f035f7584e0fc9c7f03da1899c05b1.png

    如何用?

    然后编写一个方法,叫ini(),把文件里的数据读出来:

    public void iniPool(){

    InputStream in=DBPool.class.getResource("/com/jake/config/dbPool.properties");

    Properties pro=newProperties();

    pro.load(in);

    String class_name=pro.getProperty("class_name");

    }

    这样就可以把文件里的键值对取出赋值给变量,后面的文件路径问什么这么写,看下面的图片,相信你就会明白为什么了。

    这是我写的测试方法:

    其中DBPool.class打印出来是类的包路径,自动调用toString方法打印出来;

    getResource(),是为了找到资源文件,如果不存在就返回null;而getResource("")指的是除了类名的前面的路径,而加上"/",则指的是类包的根目录,不管什么类都是这样的,只可能是classes的路径,比如Class类:Class.class.getResource("/")得到的还是项目的classes的目录路径,这样就确保将来如果把项目移到其他的系统上时,路径会更随自己变动,而不是写死的固定路径。

    ad32474066f6e9a0327a0ce67ced5cc8.png

    展开全文
  • 怎么把一个java编写的简单计算器替换到主窗口所连的Another的位置主窗口...怎么把一个java编写的简单计算器替换到主窗口所连的Another的位置主窗口public class MyF...

    怎么把一个java编写的简单计算器替换到主窗口所连的Another的位置主窗口publicclassMyFrameextendsJFrameimplementsActionListener{privateJPanelpan;privateJButtonbut;MyFrame(){th...

    怎么把一个java编写的简单计算器替换到主窗口所连的Another的位置

    主窗口

    public class MyFrame extends JFrame implements ActionListener {

    private JPanel pan;

    private JButton but;

    MyFrame(){

    this.setBounds(100, 100, 200, 200);

    pan = new JPanel();

    but = new JButton("点我出来新窗口");

    but.addActionListener(this);

    pan.add(but);

    this.add(pan);

    this.setAlwaysOnTop(true);

    this.setVisible(true);

    }

    public static void main(String args[]){

    new MyFrame();

    }

    public void actionPerformed(ActionEvent e) {

    if(e.getSource()==but){

    this.setVisible(false);

    new Another();

    }

    }

    class Another extends JFrame{

    Another(){

    this.setTitle("新窗口");

    this.setBounds(300, 300, 200, 200);

    this.setAlwaysOnTop(true);

    this.setVisible(true);

    }

    }

    }

    展开

    展开全文
  • Java编程思想——多态

    2017-09-25 16:31:12
    多态通过分离做什么和怎么做,从另一角度将接口和实现分离出来。 向上转型 某个对象的引用视为对其及类型的引用的做法被称作向上转型 //创建乐器基类 class Instrument{ public void play(Note n){ print(...

    多态通过分离做什么和怎么做,从另一角度将接口和实现分离出来。

    向上转型

    把某个对象的引用视为对其及类型的引用的做法被称作向上转型

    //创建乐器基类
    class Instrument{
        public void play(Note n){
            print("Instrument.play()");
        }
    }
    
    public class Wind extends Instrument{
    
        public void play(Note n){
            print("Wind.play()"+n);
        }
    }
    
    public class Brass extends Instrument{
    
        public void play(Note n){
            print("Brass.play()"+n);
        }
    }
    
    public class Music{
        public static void tune(Instrument i){
            i.play()
        }
    
        main(String[] args){
            Wind w = new Wind();
            tune(w) //Wind.play()
        }
    }复制代码

    Wind 是从Instrument继承的,所以Instrument的接口必定存在Wind中,从Wind向上转型到Instrument会“缩小”接口。

    绑定

    编译器怎么知道Instrument引用指向的是Wind对象,而不是Brass对象?

    方法调用绑定

    绑定:将一个方法调用与方法主体关联起来称作绑定。

    • 前期绑定:程序执行前进行绑定
    • 后期绑定(动态绑定):运行时根据对象的类型进行绑定
      Java中除了static和final方法之外,其他所有的方法都是后期绑定
    //基类
    public class Shape{
        public void draw(){
    
        }
        public void erase(){
    
        }
    }
    
    public class Circle extends Shape{
        public void draw(){
            print("Circle draw");
        }
        public void erase(){
            print("Circle erase");
        }
    }
    
    public class Square extends Shape{
        public void draw(){
            print("Square draw");
        }
        public void erase(){
            print("Square erase");
        }
    }
    
    public class Triangle extends Shape{
        public void draw(){
            print("Triangle draw");
        }
        public void erase(){
            print("Triangle erase");
        }
    }
    
    public class RandomShape{
    
    
    }复制代码

    转载于:https://juejin.im/post/59c929b2f265da06722853b9

    展开全文
  • 为什么我connect()方法加入button1的事件中就会黑屏 代码如下 客户端: package sunxu.util; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt...
  • Java面向对象编程

    2019-06-17 23:07:42
    如果说C语言程序设计很有意思的话,那该怎么去形容Java才最贴切呢。从现在起,开始深入研究Java面向对象编程——OOP(终于开始学Java了)。 最基本——创建一个类(class) 一个class类中需要描述出类的属性和方法...

    如果说C语言程序设计很有意思的话,那该怎么去形容Java才最贴切呢。从现在起,开始深入研究Java面向对象编程。

    最基本——创建一个类(class)

    一个class类中需要描述出类的属性和方法,比如说现在有一个问题的对象是一只猫,我们需要把它的种类、名字、体重描述出来,同时它可以吃饭、睡觉、玩耍。这时候,我们就需要创建一个Cat类。这里只是简单描述,所以把属性和方法都设置成了public
    创建结果如下

    class Cat{
    	//属性
    	String kind;
    	String name;
    	double weight;
    	//构造器
    	public Cat(String kind, String name, double weight) {
    		super();
    		this.kind = kind;
    		this.name = name;
    		this.weight = weight;
    	}
    	//方法
    	public void play() {
    		System.out.println(this.name+"在玩耍");
    	}
    	public void eat() {
    		System.out.println(this.name+"吃了一斤猫粮");
    	}
    }
    

    OOP三大特征——封装、继承、多态

    一、封装

    为什么要实现封装?——保护类的一些属性或方法。
    使用关键字private进行修饰后的属性或方法之后,就只允许类自身进行修改和使用,其他类则没有权限。这种情况下可以在类内部构造set和get方法供其他类间接访问。

    public class test_class {
    	public static void main(String[] args) {
    		Cat cat=new Cat();
    		//cat.weight=3.6;	//会报错!
    		System.out.print(cat.getWeight()+"->");
    		cat.setWeight(6.2);
    		System.out.println(cat.getWeight());
    	}
    }
    class Cat{
    	//私有属性
    	private double weight=3.2;
    
    	//get方法获取属性
    	public double getWeight() {
    		return weight;
    	}
    	//set方法供修改
    	public void setWeight(double weight) {
    		this.weight = weight;
    	}
    	
    }
    //运行结果:3.2->6.2
    

    如果一个属性或方法前面带有关键字fianl修饰的属性和方法,则代表其已是最终的状态,不允许进行任何修改。

    有关类和属性的一些修饰符之后的访问权限说明:
    在这里插入图片描述

    1. private 表示私有,只有自己类能访问
    2. default表示没有修饰符修饰,只有同一个包的类能访问
    3. protected表示可以被同一个包的类以及其他包中的子类访问
    4. public表示可以被该项目的所有包中的所有类访问

    二、继承

    在Java面向对象编程中,类不能实现多继承,但接口(interface)可以,接口先不说。这里使用extend关键字实现继承,但即使是子类也没有直接访问和修改父类属性的权限。这里以上面的Cat类为父类创建一个LettleCat类。

    class LettleCat extends Cat{
    	
    	public void change() {
    		this.name="yang1";//非私有可供子类访问
    		//this.weigh=6.2;//无权限,会报错
    		this.setWeight(6.2); 	//可实现
    	}
    	
    }
    

    在这里,子类可以对父类方法实现重写,super(超)父类可调用父类方法。

    public double getWeight() {		//Cat类中getWeight方法的重载
    	double a=super.getWeight();	//super调用父类方法
    	System.out.println(a);
    	return 0;
    }
    
    三、多态

    人个有志,在Java中类也是如此。子类对父类方法的重写形成了多态的现象。感觉这里没什么好说的,说再多都是花里胡哨,没有一个代码片来的实在。

    演示

    public class testpolym {
    	public static void main(String[] args) {
    		aman pro=new programer();
    		re_lax(pro);	//传参——程序员类
    		aman ac=new Acmer(); 
    		re_lax(ac);		//传参——Acmer类
    	}
    	//用一个方法测试
    	static void re_lax(aman per) {
    		per.relax();
    	}
    }
    //父类
    class aman{
    	public void relax() {
    		System.out.println("休息一会");
    	}
    }
    //子类——程序员
    class programer extends aman{
    	public void relax() {
    		System.out.println("程序员写了一小段程序");
    	}
    }
    //子类——Acmer
    class Acmer extends aman{
    	public void relax() {
    		System.out.println("Acmer随手ak,无敌是多么寂寞");
    	}
    }
    

    面向接口编程

    前面继承那里提到过,在Java中,类没有多继承,但接口可以多继承,一个类也可以接入多个接口,下面就开始引入接口的探讨。使用interface 声明一个接口,使用implements让一个类连接接口。(这里只是简单说一下接口。。。\很小声)

    接口给工程的开发提供了一个模板,接口的引入是的类的创建更加简洁,功能性一目了然。

    接口使用时需要注意:接口中写出的只是一个方法的模型,而一个类接入接口时需要将此接口中所有的方法具体实现,同理如果接入多个,则需要一一实现。

    程序演示

    //接口a
    interface a{
    	int max=100;
    	void face();
    }
    //接口b
    interface b{
    	void shout();
    }
    //接口c实现了多继承
    interface c extends a, b{
    	//接口的继承与类的继承方式类似,不再写入内容
    }
    //一个类可接入多个接口
    class ren implements a,b{
    	
    	//必须实现所有接口的所有方法!
    	@Override
    	public void shout() {
    		System.out.println(max);
    	}
    	@Override
    	public void face() {
    		System.out.println(max);
    	}
    }
    

    注释

    1. 以上就是前阵学到Java面向对象编程的小总结,写的有些粗糙,只是简述了面向对象编程过程中常用的编程框架,有一部分东西没有进行阐述。

    2. 还有就是异常的处理try-catch-finally,什么手动抛出异常,不在这里写下。

    在我看来: Java面向对象编程是编程思维方式的一种转变,过去的面向过程的思想中,不管什么牛鬼蛇神全都放在一起,最终实现就行。而面向对象编程这里则是将事物类化,然后就new一个对象直接调用其属性和方法即可。emmm,挺有意思。

    层楼终究误少年,自由早晚乱余生!

    展开全文
  • JAVA怎么把随机数赋给数组来源:互联网宽屏版评论2012-05-29 12:50:14分类: 电脑/网络 >> 程序设计 >> 其他编程语言问题描述:double a=Math.random();可以产生个随机数,怎么产生100个这样的随机数然后...
  • 为了让JAVA代码看起来美观,可读性强,应该怎么调整代码呢? 具体问题就是我的代码中有好几个类,每个类中属性偏多,我应该一个类中所有的方法写在一起吗?还有设置器和访问器,是声明一个属性就紧跟在后面写...
  • 记录点滴 1. 如图 在 红圈 后面 右击... ...2.然后得到 下图 ,类的 名字 随意 , 一般直接 点 ok ...然后 再按上面的 步骤点击 内部类的 class 那一行 最后,右击 , 选择 refactor--move , 在点击 refactor 就 ok了
  • java编程的时候,比如jdbc编程,有时我们需要加入一些外部的jar包,使用其中的class文件。这些jar包是怎么加入呢?我们在程序代码中是直接用import语句它们导入进来的,并没有管它们的位置,是jar包作为根目录...
  • 怎么把大象装入冰箱? 面向过程编程思想(POP) 1)打开冰箱 2)把大象装入冰箱 3)关上冰箱 面向对象 (OOP) 1)封装方法: (打开冰箱) (把大象装入冰箱) (关上冰箱) 2)人{ (打开冰箱) (把大象装入冰箱)...
  • 它提供了另一个层面的接品与实现分离,也就是说 做什么 和 怎么做分离开来。多态性是一项很重要的技术,它能够将会变的和不会变的东西分隔开来一些代码 importjava.util.*;classNote{privateStringnoteName;...
  • java多线程编程笔记1

    2012-04-20 17:04:52
    以前很久听过多线程编程,但是一直没弄清楚多线程编程到底是怎么回事,最近认真研究了下,感觉多线程编程应用的实在是太多了,在此所做笔记分享一下:我先贴个代码,待会慢慢解释:   package Duoxianc; ...
  • Java的面向对象编程

    2016-08-15 20:45:52
    怎么实现封装?封装的目的是为了提高程序的安全性。封装就是不想让第三者看的属性,方法隐藏起来。封装的实现方法是: 1.修改属性的可见性,限制访问。 2.设置属性的读取方法。 3.在读取属性的方法中,添加...
  • Java编程中,有些知识 并不能仅通过语言规范或者标准API文档就能学到的。在本文中,我会尽量收集一些最常用的习惯用法,特别是很难猜到的用法。我本文的所有代码都放在公共场所里。你可以根据自己的喜好去复制和...
  • 对不起,如果这是另一个愚蠢的愚蠢问题,但我仍然是Java编程语言的新手.我有3个类:InputClass,PreviewClass和MainClass.MainClass包含运行程序的主要方法. InputClass包含一个用于输入的私有JTextField和一个用于将...
  •  怎么实现一个个函数的功能,这些函数组织起来完成整个流程。  面向对象的编程思想:以事物为中心,以完成每一个类为目的。  怎么封装一个个类,这些类组织起来解决整个问题。 面向对象特征:封装、继承、...
  • Lambda 允许函数作为一个方法的参数(函数作为参数传递到方法中) 是不是一脸懵逼,语言上的解释是苍白无力的,并且每个人对于lambda都有自己的理解,所以只有通过实践就会明白到底是怎么一回事 来吧,展示~ ...
  • 概念: 一个高级的迭代器,不是一个...只关注怎么把数据高效的处理。 内部迭代与外部迭代: public class Test2 { public static void main(String[] args) { int[] nums={1,5,6}; //外部迭代 求和 int...
  • 怎么页面中的参数通过vector传入applet。我做了一个不正确的地方欢迎指正。程序用jcreator 打开即可。import java.util.*;import java.util.*;import java.applet.*;import java.awt.*;public class applet_...
  • js中class怎么实现的

    千次阅读 2019-01-28 08:48:33
    class的实现 一谈到编程,我们首先想到的就是O(Object)O(Oriented)P(Programming)编程,也就是面向对象编程。面向对象编程是一种设计思想。如果程序当做一个人,那么对象就是各个器官,对象里面的各种操作函数...
  • 但是在我想要这些文件放到jdk目录下对应的位置的时候: 按之前前辈们的做法是(他们是在linux下成功的): “如果要脱离eclipse单独执行串口通信程序,将librxtxSerial.so复制到$JAVA_HOME/jre/lib/amd64/目录下...
  • 已经mysql-connector-java-5.1.13-bin.jar加进classpath了,但Class.forName(com.mysql.jdbc.Driver)依然是ClassNotFoundException不要什么编程环境...网上看了各种解释,都是行不通。已经mysql-connector-java-...
  • java工程A中测试了的下载文件的速度,下载40个物料的文件大概花费2分钟,由此可知如果要旧系统的所有物料附件下载完,估计要花费40多个小时,这样做花费时间太久了,我当前的电脑配置Intel I5 ,CPU 4核心。...
  • JAVA的学习

    2019-10-04 20:13:33
    怎么说呢,我已经接触JAVA已经两周了,个人感觉还是不懂,哈哈,JAVA是一门编程语言,是大多数开发者较为习惯的编程模式,我感觉相对比C语言来说可能简单学点,可能是我先接触C语言,或许因人而异,在JAVA课堂中...
  • Java的内存模型

    2019-03-20 18:50:29
    Java内存结构见java运行原理 不要概念弄混淆了。 内存模型实际上是描述程序的可能行为。...Java编程语言内存模型是java 虚拟机的规范,至于具体怎么实现可以任意,包括操作的重新排序和删除不必要...
  • 16 我想把java编译成exe文件,该怎么做? 答:JDK只能将java源文件编译为class文件。 class 文件是一种跨平台的字节码,必须依赖平台相关的JRE来运行。Java以此来实现跨平台.有些开发工具可以将java文件编译为exe...
  • 疯狂JAVA讲义

    2014-10-17 13:35:01
    学生提问:老师,我想学习Java编程,到底是学习Eclipse好呢,还是学习JBuilder好呢? 21 1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 24 2.1.1 结构化程序设计简介 24 2.1.2 程序的三种...

空空如也

空空如也

1 2 3 4 5 6
收藏数 120
精华内容 48
关键字:

怎么把java编程class

java 订阅