• 一些java小代码


    主要是温习上学期的基础知识,不能前学后忘呵呵、

    创建一个简单的窗体
    1)
    import java.awt.*;
    import javax.swing.*;
    
    class hello extends JFrame {
    	hello(){
    		setTitle("hello");
    		setVisible(true);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    	
    	public static void main(String[] args){
    		new hello();
    	}
    }
    当然也可以使用另外一种不是很推荐的方法:
    import java.awt.*;
    import javax.swing.*;
    
    class hello {
    	public static void main(String[] args) {
    		JFrame frame= new JFrame();
    		frame.setSize(100,100);
    		frame.setTitle("hello");
    		frame.setVisible(true);
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    }
    效果都如下所示:
     
    
    class hello {
    	public static void main( String[] args ) {
    		String[] he=new String[3];
    		he[0]="1";
    		he[1]="2";
    		he[2]="3";
    		
    		for(String i : he){
    			System.out.println(i);
    		}
    
    	}
    }
    输出结果:1 2 3 
    
    import javax.swing.*;
    
    public class hello {
    	public static void main( String[] args ) {
    		JOptionPane.showInputDialog("Rollen Holt");
    		JOptionPane.showMessageDialog(null, "Welcome");
    	}
    	
    }
     
     
    import java.text.NumberFormat;
    
    public class hello {
    	public static void main( String[] args ) {
    		NumberFormat format1 = NumberFormat.getCurrencyInstance();
    		double a = 1000.1020;
    		System.out.println(format1.format(a));
    
    	}
    
    }
    输出结果:¥1,000.10
    
    
    
    import java.math.*;
    public class hello {
    	public static void main( String[] args ) {
    	long a=10000000000000l;
    	long b=20000000000000l;
    	BigInteger A=BigInteger.valueOf(a);
    	BigInteger B= BigInteger.valueOf(b);
    	
    	// 对于大树类  不能直接用加减乘除,只能采用函数调用的形式
    	BigInteger str=A.multiply(B);
    	System.out.println(str);
    	}
    }
    输出的结果:200000000000000000000000000
    
    // 对象的引用传递 1
    class hello{
    	public static void main(String[] args){
    		String str="hello";
    		function(str);
    		System.out.println(str);
    	}
    	
    	private static void function(String str2){
    		str2="world";
    	}
    }
    输出结果:hello   (因为string类型是不可变的)
    对象的引用传递2
    // 对象的引用传递 2
    class Demo {
    	String str = "hello";   //注意这里是string类型,类类型
    }
    
    public class hello {
    	public static void main( String[] args ) {
    		Demo demo = new Demo();
    		demo.str = "world";
    		System.out.println(demo.str);
    		function(demo);
    		System.out.println(demo.str);
    	}
    
    	static void function( Demo demo ) {
    		demo.str = "Rollen";
    	}
    
    }
    
    输出的结果是:
    world
    Rollen
    // 对象的引用传递 3
    class Demo {
    	int str = 1;            // 这里是int类型,是基本类型
    }
    
    public class hello {
    	public static void main(String[] args) {
    		Demo demo = new Demo();
    		demo.str = 2;
    		System.out.println(demo.str);
    		function(demo);
    		System.out.println(demo.str);
    	}
    
    	static void function(Demo demo) {
    		demo.str = 3;
    	}
    
    }
    输出的结果:
    2
    3
    /**
     * @version 1.0
     * @author Rollen-Holt 判断两个一般对象是否相等
     * */
    
    class hello{
    	hello(){
    		name = "";
    		age = 0;
    	}
    
    	hello(String name, int age){
    		this.age = age;
    		this.name = name;
    	}
    
    	public boolean compare(hello he){
    		if (he == null) {
    			return false;
    		}
    		if (he == this) {  //如果两个对象在同一个地址的话,一定是相等的
    			return true;
    		}  // 否则的话,就要逐个比较内容了
    		if (this.name.equals(he.name) && (this.age == he.age)) {
    			return true;
    		} else {
    			return false;
    		}
    	}
    
    	public static void main(String[] args){
    		hello h1 = new hello("name1", 12);
    		hello h2 = new hello("name2", 18);
    		if (h1.compare(h2)) {
    			System.out.println("equal");
    		} else {
    			System.out.println("not equal");
    		}
    	}
    
    	private String name;
    	private int age;
    }
    输出的结果:not equal
    
    有时候我们还需要在继承的情况下判断对象是否相等
    /**
     * @author Rollen-Holt
     * 继承中的对象的比较
     */
    class Person{
    	
    	Person(String name, int age){
    		this.age=age;
    		this.name=name;
    	}
    	
    	public boolean equals(Object obj){
    		if(obj==null){
    			return false;
    		}
    		if(this==obj){
    			return true;
    		}
    		if(!(obj instanceof Person)){
    			return false;
    		}
    		Person per =(Person)obj;
    		if(this.name.equals(per.name)&&(this.age==per.age)){
    			return true;
    		}else{
    			return false;
    		}
    	}
    	
    	public String toString(){
    		return this.name+"	"+this.age;
    	}
    	
    	private String name;
    	private int age;
    }
    
    class hello{
    	public static void main(String[] a){
    		Person per1=new Person("Rollen",12);
    		Person per2=new Person("Rollen",12);
    		if(per1.equals(per2)){
    			System.out.println("equals");
    		}else{
    			System.out.println("Not equals");
    		}
    	}
    }
    
    
    /**
     * @version 1.0
     * @author Rollen-Holt 代码块的使用
     * */
    
    class hello{
    	static{
    		System.out.println("hello");
    		System.exit(1);
    	}
    }
    
    /**
     * @version 1.0
     * @author Rollen-Holt 代码块的使用,注意调用顺序
     * */
    
    class hello{
    	{
    		// 普通代码块
    		System.out.println("普通代码块");
    	}
    	static{
    		//静态代码块
    		System.out.println("静态代码块");
    	}
    	hello(){
    		//构造代码块
    		System.out.println("构造代码块");
    		
    	}
    	public static void main(String[] a0){
    		hello he=new hello();
    		hello he1=new hello();
    		System.out.println("主函数");
    	}
    }
    输出结果:
    静态代码块   // 静态代码块指调用一次
    普通代码块
    构造代码块
    普通代码块
    构造代码块
    主函数
    
    
    /**
     * @version 1.0
     * @author Rollen-Holt 使用static 定义内部类 ,但是静态内部类只能访问外部类的静态属性和方法
     * */
    
    class hello{
    	private static void say(){
    		System.out.print("hello");
    	}
    
    	private void say1(){
    		System.out.print("hello1");
    	}
      
    	static class inner{
    		void getSay(){
    			say();
    		}
    		
    //		void getSay1(){
    //			say1();
    //		}
    	}
    	public static void main(String[] a0){
    		new hello.inner().getSay();
            //new hello.inner().getSay1(); // 静态内部类不能发访问外部类的非静态成员和方法
    		
    	}
    }
    
    /**
     * @version 1.0
     * @author Rollen-Holt 
     * 继承中的方法重写的问题
     * */
    class Demo{
    	void say(){
    		System.out.println("Demo");
    	}
    }
    
    class hello extends Demo{
    	public void say(){  //注意这里的public,重写的时候访问权限不能小于原来的
    		System.out.println("hello");
    	}
    	public static void main(String[] a0){
    		new hello().say();
    	} 
    }
    
    /**
     * @author Rollen-Holt 在抽象类中定义构造方法
     */
    abstract class Demo{
    	public Demo(){
    		System.out.println("Demo");
    	}
    
    	public void say(){
    		System.out.println("Rollen");
    	}
    }
    
    class hello extends Demo{
    	public void say(){
    		super.say();
    		System.out.println("Holt");
    	}
    
    	public static void main(String[] a){
    		new hello().say();
    	}
    }
    输出的结果:
    Demo
    Rollen
    Holt
    
    /**
     * @author Rollen-Holt this 关键字的使用
     */
    
    class hello{
    	hello(){
    		name = "";
    		age = 0;
    	}
    
    	// 此处使用this访问类属性
    	hello(String name, int age){
    		this.age = age;
    		this.name = name;
    	}
    
    	// 此处使用this调用构造函数
    	hello(String name){
    		this(name, 0);
    	}
        
    	public String getName(){
        	return name;
        }
    
    	public static void main(String[] a){
    		hello he = new hello("Holt");
    		System.out.println(he.getName());
    	}
    
    	private int age;
    	private String name;
    }
    
    关于接口的一点点啰嗦:
    //接口中的方法必须是public。如果不写public的话,默认也是public的
    interface A{
    	public static final String name="Rollen";
    	public abstract void say();
    }
    接口其实可、可以简写为下面的形式:
    interface A{
    	String name = "Rollen";
    	void say();
    }
    
    /**
     * @author Rollen-Holt
     * 接口的一个例子
     */
    
    // 接口中的方法必须是public。如果不写public的话,默认也是public的
    interface A{
    	String name = "Rollen";
    	void say();
    }
    
    class hello implements A{
    	public static void main(String[] a){
    		new hello().say();
    	}
    
    	@Override
    	public void say(){
    		System.out.println(name);
    
    	}
    }
    
    /**
     * @author Rollen-Holt
     * 对象的多态性
     * 对象的向上传递
     */
    
    class Demo{
    	public void say(){
    		System.out.println("Rollen");
    	}
    }
    class hello extends Demo{
    	public void say(){
    		System.out.println("Holt");
    	}
    	public static void main(String[] a){
    		hello he=new hello();
    		Demo demo=new Demo();
    		demo=he;
    		demo.say();
    	}
    
    	
    }
    输出结果Holt
    /**
     * @author Rollen-Holt
     * 对象的多态性
     * 对象的向下传递
     */
    
    class Demo{
    	public void say(){
    		System.out.println("Rollen");
    	}
    }
    class hello extends Demo{
    	public void say(){
    		System.out.println("Holt");
    	}
    	public static void main(String[] a){
    		Demo demo=new hello();
    		//但是如果将上面的这句换为: Demo demo=new Demo();
    		//将会出现错误
    		hello he=(hello)demo;
    		he.say();
    	}
    
    	
    }
    输出结果:Holt
    
    /**
     * @author Rollen-Holt
     */
    // 在抽象类内部也可以定义多个抽象类或者是接口,
    //在接口的内部也可以定义多个接口或者是抽象类
    
    abstract  class A{
    	public abstract void sayA();
    	interface B{
    		public void sayB();
    	}
    }
    
    class X extends A{
    	public void sayA(){
    		System.out.println("A");
    	}
    	class Y implements B{
    		public void sayB(){
    			System.out.println("B");
    		}
    	}
    }
    class hello{
    	public static void main(String[] a){
    		A.B demo=new X().new Y();
    		demo.sayB();
    	}
    }
    
    /**
     * @author Rollen-Holt
     */
    // 在抽象类内部也可以定义多个抽象类或者是接口,
    // 在接口的内部也可以定义多个接口或者是抽象类
    /*
     * 在一个接口中实现抽象类
     */
    interface A{
    	public void sayA();
    	abstract class B{
    		public abstract void sayB();
    	}
    }
    
    class X implements A{
    	public void sayA(){
    		System.out.println("A");
    	}
    	class Y extends B{
    		public void sayB(){
    			System.out.println("B");
    		}
    	}
    }
    class hello{
    	public static void main(String[] a){
    		A.B demo =new X().new Y();
    		demo.sayB();
    	}
    }
    
    Object类提供的equals()方法默认是比较地址的。
    
    /**
     * @author Rollen-Holt
     * 使用object 接收接口
     */
    interface A{
    	public void say();
    }
    
    class B implements A{
    	public void say(){
    		System.out.println("A");
    	}
    }
    
    class hello{
    	public static void main(String[] args){
    		A a=new B();
    		Object obj=a;
    		A demo=(A)obj;
    		demo.say();  //输出A
    	}
    }
    
    /*
     * 这个实例说明,虽然接口不能继承类,但是接口仍然是Object的子类。
     * 因为接口本身就是引用数据类型 所以可以进行向上的转型操作
     * 
     */
    
    /**
     * @author Rollen-Holt 使用object 接收数组
     */
    
    class hello{
    	public static void print(Object obj){
    		if (obj instanceof int[]) {
    			int[] array = (int[]) obj;
    			for(int temp : array) {
    				System.out.println(temp + "\t");
    			}
    		}
    	}
    
    	public static void main(String[] args){
    		int temp[] = { 1, 2, 3, 4, 5 };
    		Object obj = temp;
    		print(obj);
    	}
    }
    
    /*
     * Object 可以接受任何引用类型
     */
    
    
    关于异常的一点点小解说:
    Exception在程序中必须使用try …catch语句进行处理
    但是RuntimeException可以不使用try…catch进行处理,如果期间有异常产生,则直接提交到JVM
    一点点小建议:
    对于RuntimeException也使用try…catch语句进行处理
    
    关于使用分别倒入和使用“*”导入那个效率高的问题:
    其实效率是一样的,因为即使对于“*”导入的,也是程序自动加载的。而不需要的类不会被导入到程序。
    

      

  • 相关阅读:
    mybatis分页插件pagehelper 5.1.2遇到的问题
    IDEA中SSM框架转变为SOA dubbo框架 zookeeper注册中心
    zookeeper注册中心搭建
    dubbo搭建
    作业三:程序设计大赛项目管理WBS
    无效的绑定声明(未找到)包名.mapper.XXXMapper.方法。IDEA中接口与映射文件未在一起问题
    IDEA中循环依赖解决方法
    Linux环境安装jdk
    在MainActivity的内部静态类PlaceholderFragment 类中的onCreateView中获取fragment_main.xml中控件
    Eclipse: Android Device Chooser
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2145130.html
Copyright © 2020-2023  润新知