基于eclipse的java基础(一)

目录

1.1HelloJava

2.1主类结构

2.2数据类型

2.3常量变量 

 2.4运算符

 3.1流程控制-复合-条件语句

3.2 循环语句

 4.1字符串类

4.2 正则

 5.1数组-创建使用

5.2基本操作

 5.3BubbleSort

5.4SelectSort

5.5RverseSort

 6.1类

6.2EggCake

6.3Pool

6.4Test

7.1包装类-Integer

8.1Decimal_Format

8.2Decimal_Math


 

 

1.1HelloJava

/**文档注释,会被读取为javadoc的内容
 * @author Administrator
 *
 */
public class HelloJava1 {

	/**
	 * 123
	 */
	public HelloJava1() {
		// TODO Auto-generated constructor stub存根
	}

	/**
	 * @param args 
	 * 
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("什么是java语言:"+"〇开发工具:笔(IDE)"+"①程序源代码(菜单)预处理→"+
		"②编译器(大厨切菜)解释→"+"③字节码(美食半成品即切好的菜)解释→"+"④JVM(大厨做饭)"+
		"⑤机器码(出锅)→计算机");
		System.out.println("java版本:"+"SE:标准版,桌面应用程序开发。EE:企业级分布式网络程序。"
		+ "ME:嵌入式系统开发");
		System.out.println("syso+alt+/");
        System.out.println("alt / 代码提示自动补全");
        System.out.println("debug进行调试,断点所在,"
        		+ "单步跳入f5进入该行代码,查看该代码如何运行,查看详细的运行过程 ,单步跳过f6");
	} 

}

2.1主类结构

public class First_ZhuLeiJieGou1 {//公开类名,java的基本组成是类,类中包含属性和方法
	//文件名必须和文件名相同,区分大小写,如class不等于Class
	static String s1="你好";//类的属性=全局变量(成员变量)
	public First_ZhuLeiJieGou1() {//公开名字
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {//程序开始执行的位置
		//主类(主方法),权限修饰符,静态修饰符,返回值修饰符,字符串类型数组为参数
		// TODO Auto-generated method stub
		String s2="java";//方法中的属性,局部变量
		System.out.println(s1);
		System.out.println(s2);
	}

}

2.2数据类型

public class Number_ShuJuLeiXing2 {//创建类
	public Number_ShuJuLeiXing2() {
		// TODO Auto-generated constructor stub
	}
	public static void main(String[] args) {//主方法
		// TODO Auto-generated method stub
		/*基本数据类型为、数值型(整数类型、浮点类型)、字符型(+转义字符)、布尔型
		*整数类型(byte 8位约127、short16约三万二、int32约正负21亿四千万、long64)
		*浮点类型(float32位、double64,默认double)
		*float f1=123.456f;(要加f)double f2=123.456
		*/
		byte a1=127;
		short a2=32767;
		int a3=21;
		long a4=1;
		System.out.println(a1+a2+a3+a4);
		/*字符型(char占16位2字节)char='a',单引号。"a"代表字符串
		*字符和整数可以换,char word='d';输出(int)word
		*/
		char word='d';
		System.out.println((int)word);
		//转义字符:\开头,后加一个或多个字符。不同于字符原有的含义,故称转义。
		//\t垂直制表符,\r回车,\n换行,\b退格,\f换页
		char c1='\\';//反斜杠的写法
		char c2='\u2605';//四位十六进制数据表示的字符
		System.out.println(c1);
		System.out.println(c2);
		
		/*布尔类型又叫逻辑类型,只有真假,不能和整数类型进行转换。
		 * 
		 */
		
		boolean b=true;//定义布尔类型b,赋予初值true
	}

}

2.3常量变量 

public class Variable_Constant3 {
	static final double PI=3.14;//final成员变量
	/*5.成员变量
	 * 在类中定义的变量为成员变量,成员变量在整个类中都有效。
	 * 分为静态变量和实例变量。静态变量的有效范围可以跨类。
	 */
	int x;//实例变量
	static int y;//静态变量
	
	public Variable_Constant3() {
		// TODO Auto-generated constructor stub
	}
	
	
	public static void main(String[] args) {
		/*1.标识符(名字):标识类名,变量名,方法名,数组名,文件名;
		 * 第一个字符不是数字,由字母,下划线,数字,$组成。
		 * 类名:通常使用名词,所有单词首字母大写如 Variable_Constant
		 * 方法名:使用动词,首单词字母小写,后边大写如  openDoor
		 * 变量名:名词,首单词字母小写,后边大写如 sisiterName
		 * 常量名:都大写如 GENDER 性别(非必须)
		 * 关键字是被赋予特别意义的字,如 int
		 */
		
		/*2.声明变量
		 * 定义变量就是告诉编译器这个变量的数据类型,编译器会知道:分配多少空间,存放什么数据;
		 * 程序运行中,空间中的值是变化的,这个内存空间称为变量,内存空间内的值为变量值。
		 * 声明变量时可以赋初始值,可以不赋值。
		 * 内存大致分为系统区,程序区,数据区。程序执行时,代码加载到程序区,数据在数据区。
		 */
		int age;
		char char1='r';
		/*3.常量:程序运行中,一直不变的量。也叫final变量
		 * 当定义的final变量属于成员变量时,定义是就要设定初值。
		 */
		final int age1;
		
		
		/*4.变量的有效范围指的是代码能够访问该变量的区域,超出编译错误。
		 * 根据有效范围分为成员变量和局部变量。
		 * 局部变量指在方法体中定义的变量。只在方法中有效
		 * 局部变量可以和成员变量重名,此时此方法体中成员变量失效
		 */
	}
}

 2.4运算符

public class YunSuanFu4 {

	public YunSuanFu4() {
		// TODO Auto-generated constructor stub
	}
	public static void main(String[] args) {
		//1.赋值运算符
		int a,b,c;
		a=15;
		c=b=a+4;
		System.out.println(c);
		//2.算术运算符,加减乘除取余
		float d1=45.56f;
		int d2=152;
		System.out.println("加减乘除");
		System.out.println((d1+d2));
		System.out.println((d1-d2));
		System.out.println((d1*d2));
		System.out.println((d1/d2));
		System.out.println((d1%d2));
		//3.比较运算符
		System.out.println("比较");
		System.out.println((d1>d2));
		System.out.println((d1<d2));
		System.out.println((d1==d2));
		System.out.println((d1>=d2));
		System.out.println((d1<=d2));
		System.out.println((d1!=d2));
		//4.自增自减运算符
		int e1=3,e2=4;
		e1=e2++;
		System.out.println("自增自减");
		System.out.println(e1);
		System.out.println(e2);
		e1=--e2;
		System.out.println(e1);
		System.out.println(e2);
		//5.逻辑运算符
		int f1=3,f2=4;
		System.out.println("逻辑");
		boolean f3=((a>b)&&(a<b));
		boolean f4=((a>b)||(a<b));
		boolean f5=(!((a>b)||(a<b)));
		System.out.println(f3);//与
		System.out.println(f4);//或
		System.out.println(f5);//非
		//6.按位运算符
		int f6=f1&f2;//3是011,4是100,则按位与000
		int f7=f1|f2;//3是011,4是100,则按位或为111为7
		int f8=~f1;//3是011,按位取反100
		int f9=f1^f2;//3是011,4是100,则按位异或111,相同为0不同为1
		System.out.println("按位");
		System.out.println(f6);
		System.out.println(f7);
		System.out.println(f8);
		System.out.println(f9);
		//7.移位运算符
		System.out.println("移位");
		int f10=f1>>1;//011右移一位01
		int f11=f2>>1;//100右移一位10
		int f12=f1<<1;//011左移一位110
		int f13=f1>>>1;//011无符号右移一位01
		System.out.println(f10);
		System.out.println(f11);
		System.out.println(f12);
		System.out.println(f13);
		//8.三元运算符
		boolean g=20<30?true:false;
		//若结果为真,选择true,则整体结果为1,若结果为假,返回false,则取2
		
		/*运算符优先级
		 * ()>正负号>一元运算符>算术运算符>移位运算符>比较运算符
		 * >按位运算符>逻辑运算符>三元运算符>赋值运算符
		 */
		
		//类型转换:一个值从一个类型转换成另一个类型
		int x=50;
		float y=x;//隐式转换
		System.out.println(y);
		long x1=(long)456.5f;//显式转换
		System.out.println(x1);
	}
}

 3.1流程控制-复合-条件语句

//复合语句以块{}为单位,由{开始,}结束。为局部变量创造了一个作用域。
public class FuHeYuJu_TiaoJian1 {

	public FuHeYuJu_TiaoJian1() {
		// TODO Auto-generated constructor stub
	}
	public static void main(String[] args) {
		//条件语句,可能有多个条件,但是一个条件对应一个结果
		int a=45;
		int b=12;
		if(a>b) {//布尔表达式,必要参数
			System.out.println("a>b");//语句序列,可选参数,若只有一句,可省略{}
		}
		//if……else if多分支语句
		int c=20;
		if(c>30) {
			System.out.println("c的值大于30");
		}else if(c>25) {
			System.out.println("c的值大于25小于30");
		}else if(c>10) {
			System.out.println("c的值大于10小于25");
		}else {
			System.out.println("c的值小于10");
		}
		//switch多分支语句,多个条件对应多个结果,一一对应。
		//表达式的值必须是整型,字符型,字符串类型
		//先计算表达式的值,如果表达式的值和某个case后面的常量值相同,则
		//执行case中的若干语句,直到遇到break为止,若表达式的值没有与case中的值相等
		//执行default
		String str="nihao";
		switch(str) {
		case"ni":
			System.out.println("ni");
		case"hao":
			System.out.println("hao");
		case"nihao":
			System.out.println("nihao");
		default:
			System.out.println("都不是");
		}
	}
}

3.2 循环语句

public class XunHuanYuJu_2 {

	public XunHuanYuJu_2() {
		// TODO Auto-generated constructor stub
	}
	public static void main(String[] args) {
		/*循环语句:条件控制
		 * 利用一个条件来控制是否继续反复执行这个语句
		 * 条件表达式返回为真,执行语句序列,为假时,退出循环
		 */
		//1.while语句
		int a=1,sum=0;//初始条件
		while(a<=10) {//循环条件
			sum=sum+a;//执行的语句序列
			++a;//让循环终止的条件
		}
		System.out.println("将1-10累加结果为"+sum);
		
		//2.do while语句,先执行一次语法序列,在判断是否循环
		int b=100;
		do {
			System.out.println("ok");
			b--;
		}
		while(b==60);
		//3.for循环 for(初始化,循环条件,让循环终止的条件)执行语句序列
		int sum1=0;
		for(int i=2;i<=100;i=i+2) {
			sum1=sum1+i;
		}
		System.out.println("2到100偶数和为"+sum1);
		//4.foreach循环遍历
		int arr[]= {1,7,10};
		for(int x:arr) {
			System.out.println(x);
		}
		//5.双循环
		for(int p=0;p<3;p++) {
			for(int q=0;q<6;q++) {
				if(q==4)
					break;//跳出当前循环体
				System.out.println("p="+p+"q="+q);
			}
		}
		//6.跳出外层循环Loop
		Loop:for(int u=0;u<3;u++) {
			  	for(int v=0;v<6;v++) {
			  		if(v==4)
			  			break Loop;
			  		System.out.println("u="+u+"v="+v);
			}
		}
		//7.continue跳出循环,跳过本次循环结束前的语句,回到循环条件,重新循环
		//20以内奇数
		for(int y=1;y<20;y++) {
			if(y%2==0)
				continue;
			System.out.println(y);
		}
	}
}

 4.1字符串类

import javax.print.attribute.standard.DateTimeAtCompleted;

public class String_lei1 {

	public String_lei1() {
		// TODO Auto-generated constructor stub
	}
	public static void main(String[] args) {
		//1.创建并连接字符串
		String s0="hello";//开辟空间s0,存放hello地址,指向内存中的hello
		String s1="hello";//开辟空间s1,存放hello地址,指向内存中的hello
		String s2=new String("word");//s2指向新对象中的word
		String s3=s1+" "+s2;
		System.out.println(s3);
		System.out.println("i like"
				+" java");
		//连接其它数据类型
		int hour=2;
		System.out.println("我每天花费"+hour+"个小时练习"+s3);
		//获取字符串长度
		int size=s0.length();
		System.out.println(size);
		//2.搜索的字符或字符串第一次和最后一次出现的位置
		int size1=s0.indexOf('l');
		System.out.println(size1);
		int size2=s0.lastIndexOf('l');
		System.out.println(size2);
		//3.获取指定索引位置的字符
		char mychar=s3.charAt(6);
		System.out.println(mychar);
		//4.截取字符串
		String s4=s3.substring(3, 5);
		System.out.println(s4);
		//5.去除前后空格
		String s5=" java nihao ";
		System.out.println(s5.length());
		System.out.println(s5.trim().length());
		//6.字符串替换
		String s6=s5.replace('j','J');
		System.out.println(s6);
		//7.前后缀判别
		boolean b=s5.startsWith("ja");
		boolean b1=s5.endsWith("o ");
		System.out.println(b);
		System.out.println(b1);
		//8.字符串相等判断,比较运算符判断的是内存地址
		boolean b2=(s0==s1);
		System.out.println(b2);
		String s7=new String("hello");
		String s8=new String("Hello");
		boolean b3=(s0==s7);
		System.out.println(b3);
		boolean b4=(s7.equals(s8));
		System.out.println(b4);
		boolean b5=(s7.equalsIgnoreCase(s8));//不区分大小写
		System.out.println(b5);
		//9.大小写转换
		String a="abc DEF";
		System.out.println(a.toLowerCase());
		System.out.println(a.toUpperCase());
		//10.字符串分割str.split("分割字符",分割次数)
		//数组是引用数据类型,数组名是数组的管理者,而非所有者。
		//访问数组元素时,可for循环遍历数组。
		//基本数据类型放在栈内存上,引用数据类型在堆内存上
		String[] s9=s7.split("e", 2);
		for(String d:s9 ) {
		System.out.println(d);
		} 
		
	}
}

4.2 正则

public class ZhengZe2 {

	public ZhengZe2() {
		// TODO Auto-generated constructor stub
	}
	public static void main(String[] args) {
		
		/*正则表达式,通常被用于判断语句,检查某一字符串是否满足格式要求。
		 * 具有特殊意义的字符串,成为元字符,如\d代表任意数字.\D代表任何一个非数字字符.\s任意空白字符,
         *\S代表任意非空字符.\w代表可用作标识符的字符,\W代表不可用作标识符的字符.\p{Lower}代表26小写字母.
         *\p{Upper}代表大写字母.\p{punct}代表标点符号。元字符在正则中在加一个\才是正则中的写法。
         *.是正则中的任意字符,所以如果要用.必须转义为\.
         *在正则中用[]括起来若干字符表示一个元字符。
		 * 限定修饰符:?0或1次.* 0或多次. + 至少一次.{n,}至少n次.如A?.A+.A*.A{2}.A{2,}.A{2,6}
		 */
         //在正则表达式中,两个\代表其他语言中的一个\
		//判断邮箱名是否合法{邮箱名@服务器名称(.中间名).后缀}
		String regex="\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
		String str="456xiao@163.vip.com";
		if (str.matches(regex))
			System.out.println("合法!");
		/*字符串生成器
		 * 创建成功的字符串,其长度是固定的,内容不能改变和编译,用+可以达到附加新字符或
		 * 字符串的目的,但会产生一个新实例,会在内存中创建新的字符串对象,如果重复修改,
		 * 极大地增大了系统开销。
		 * 字符串生成器的方法可以动态的增append(content),尾部追加内容
		 * 删delete(int start,int end),
		 * 插insert(int offset,arg)操作。
		 * toString最后输出字符串结果
		 */
		StringBuilder bf=new StringBuilder(hello);
		bf.insert(5, "world");
		System.out.println(bf.toString());
		/*
		 * 字符串内部其实就是一个使用final关键字定义的char[]数组,
		 * 数组长度一旦声明则不可改变,字符串一旦声明则不可改变,改变的引用内存指向。
		 * 赋值操作只是改变了变量引用内存区域的位置,而没有改变那块内存中的数据内容。
		 * 
		 * 基本数据类型是名字和内容是存放在栈中的;是变量,单纯的值
		 * 可以在源数据的基础上发生改变,内存地址不会发生改变
		 * 
		 * 引用数据类型名字存放在栈中,内容存放在堆中;是对象,不可以在源数据的基础上发生改变,
		 * 如果想要通过某些运算或者方法来改变源数据,则会重新开辟空间存储结果,并不会影响源数据
		 */
	}
}

 5.1数组-创建使用

import java.util.Arrays;

public class ChuangJianShiYong1 {

	public ChuangJianShiYong1() {
		// TODO Auto-generated constructor stub
	}
	public static void main(String[] args) {
		/*数组是具有相同数据类型的一组数据的集合。
		 * 是引用数据类型,首先声明数组类型,其次在为它分配内存空间,分配时必须指明数组长度
		 */
		//int arr[];声明数组类型arr[]=new int[5]为数组分配内存
		int arr[]=new int[] {1,2,3};//声明数组类型并分配内存初始化
		for (int i = 0; i < arr.length; i++) 
			System.out.println(arr[i]);//不能直接输出数组
		System.out.println(Arrays.toString(arr));
		
		
		for (int i : arr)
			System.out.println(i);//引用数据类型转化成基本数据类型输出
		//二维数组的创建遍历
		int a[][]=new int[][]{{1,2},{3,4},{5}};
		for (int j = 0; j < a.length; j++) {
			for(int k=0;k<a[j].length;k++)
				System.out.println(a[j][k]);
			System.out.println( );		
		}
		//System.out.println(Arrays.toString(a));二维不能用
		int u=0;//计数器
		for(int x[]:a) {//外层遍历
			u++;//=1
			int v=0;
			for(int y:x) {//内层遍历
				v++;//=1
				if(u==a.length && v==x.length) {//终止条件
					System.out.println(y);
				}else
					System.out.println(y+"、");
				
			}
		}
		

	}
}

5.2基本操作

import java.util.Arrays;

public class JiCao2 {

	public JiCao2() {
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//填充替换数组
		int a[]=new int[2];
		Arrays.fill(a, 8);
		for(int b=0;b<a.length;b++) {
			System.out.println(a[b]);
		}
		//填充第一个索引,不包括第二个
		Arrays.fill(a, 0, 1, 2);
		for(int c=0;c<a.length;c++) {
			System.out.println(a[c]);
		}
		//升序排序
		int d[]=new int[]{3,8,3};
		Arrays.sort(d);
		System.out.println(Arrays.toString(d));
		for(int e=0;e<d.length;e++) {
			System.out.println(d[e]);
		}
		//复制数组
		int f[]=Arrays.copyOf(d, 5);
		System.out.println(Arrays.toString(f));
		int g[]=Arrays.copyOfRange(d,0,1);//有范围复制
		System.out.println(Arrays.toString(g));
	    //查询
		Arrays.sort(d);//先排序,才能准
		int index=Arrays.binarySearch(d, 3);//查询值得索引
		System.out.println(index);
		int index1=Arrays.binarySearch(d,0,2,3);//查询值得索引,中间0,2表示范围
		System.out.println(index1);
	
	}

}

 5.3BubbleSort

public class BubbleSort3 {

	public BubbleSort3() {
		// TODO Auto-generated constructor stub
	}
	public static void main(String[] args) {
		int[] arr= {63,4,1,3,15};
		
		for(int i=1;i<arr.length;i++) {//总共进行length-1轮次
			for(int j=0;j<arr.length-i;j++) {//每趟交换length-i次
				if(arr[j]>arr[j+1]) {
					//交换
					int temp=arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;
				}
			}
		}
		//for(int q:arr)
			//System.out.print(q+" ");
		BubbleSort.ShowArray(arr);//调用类的静态方法无需创建对象
				
					
	}
}

5.4SelectSort

public class SelectSort4 {

	public SelectSort4() {
		// TODO Auto-generated constructor stub
	}
	public static void main(String[] args) {
		int[] a= {63,4,24,1,3,15};
		SelectSort(a);
	}
	//每次比较找出最大的,放在后边,然后进行下一趟比较
	public static void SelectSort(int[] arr) {
		int index;
		for(int i=1;i<arr.length;i++) {//一共比较length-1趟,6个比较5趟
			index=0;
			//每趟比较length-i次,第1趟比较5次,先找出每次比较最大的
			for(int j=1;j<=arr.length-i;j++) {
				if(arr[j]>arr[index])
					index=j;
			}
			//将最大的放在后边
			int temp=arr[arr.length-i];
			arr[arr.length-i]=arr[index];
			arr[index]=temp;
		}
		ShowArray(arr);
	}
	public static void ShowArray(int[] arr) {
		for(int i:arr)
			System.out.print(i+" ");	
	}
}

5.5RverseSort

public class RverseSort5 {

	public RverseSort5() {
		// TODO Auto-generated constructor stub
	}
	public static void main(String[] args) {
		int q=7;
		System.out.println(q/2);
		int[] a= {63,4,24,6,1,3,15};
		sort(a);
	}
	/*
	 * 第i个元素和第length-i-1交换
	 */
	public static void sort(int[] arr) {
		int temp;
		int len=arr.length;
		for(int i=0;i<len/2;i++) {//从0开始的   0.1.2
			temp=arr[i];
			arr[i]=arr[len-i-1];
			arr[len-i-1]=temp;
			
		}
		ShowArray(arr);	
	}
	public static void ShowArray(int[] arr) {
		for(int i:arr)
			System.out.print(i+" ");	
	}
}

 6.1类

public class Class1 {

	public Class1() {
		
		/*对象是事物存在的实体,将对象划分为两部分,静态和动态
		 * 1.静态部分指对象的属性(如人的高矮胖瘦,性别),即成员变量
		 * 2.动态部分指对象的行为(行走,哭泣),即方法
		 * 面相对象程序设计把实体抽象成对象,然后考虑这个对象具有的属性和行为。
		 * 识别出对象的属性和行为后,对象就被定义完成了。
		 * 类实质上是封装对象属性和行为的载体,对象则是类抽象出来的实例。
		 * 类是同一类对象的统称。
		 */
		/*封装:将属性和行为封装起来
		 *继承:利用特定对象之间的共有属性。如正方形继承了父类四边形的某些特性。
		 *多态:四边形有好多儿子,如长方形,平行四边形,调用父类可更方便处理。
		 */
	}
	public static void main(String[] args) {
		/*3.局部变量:成员方法内定义的变量,方法执行时创建,执行完销毁,必须赋值或初始化
		 * 作用域:互不嵌套的作用域中可以同时声明两个名称和类型相同的变量。如两个for
		 * 相互嵌套的作用域中不可以。如 有一个局部变量,for中有重名的
		 */
		
		/*
		 * 4.this:当成员变量和局部变量重名时,
		 * 将参数值赋值给类中的成员变量。或将成员变量值赋值给参数值
		 * 调用构造方法 eggcake
		 *
		// 5.构造方法:创建类的对象过程中运行的方法,对象的初始化方法,可以加参数
		//没有返回值,对象的构造就是构造方法完成的
		//当类实例化一个对象时,类自动调用构造方法,给对象做初始化用的
		/*6.权限修饰符:private本类可见,protected同包可见,public其他包的类可见
		 * 声明类时无修饰符权限,则默认包存取范围。
		 */
		/*7.static修饰的变量、常量、方法存于静态区(共享区)中,和程序生命周期一样长 
		 * 共享变量就是用static修饰,就是静态变量如pool
		 * final static修饰常量,就是静态常量,所有类共享,所在类.常量名 可以引用,例子PI
		 * 调用类的静态方法无需创建对象
		 * static修饰代码区域称为静态代码块,优先运行如test
		 */
		/*8.主方法:类的入口点,java编译器通过主方法执行程序
		 * 主方法是静态的,调用的方法也必须是静态的,不是静态方法必须创建对象实例
		 * 主方法没有返回值
		 * 主方法的形参为数组,args[0]到args[n]代表程序的第一个到第n个参数
		 */
		/*9.对象:Test a=new Test(1);//声明一个对象,用new操作符调用构造方法
		 * 特殊例子String str="abc";str也是一个对象
		 * a是一个引用,存放的对象的内存地址,后边的new Test(1)才是对象 可以直接用
		 * 创建对象后,可用 对象.类成员 获取对象的属性和行为,如new Test(1).类成员
		 */
	}
}

6.2EggCake

public class EggCake {
	int eggcount=3;
	public EggCake(int eggcount) {
		//this.eggcount=eggcount;//将参数值赋值给类中的成员变量。同10.1super
		System.out.println("这个饼里有"+eggcount+"个鸡蛋");//加上this都是3
	}
	public EggCake() {
		this(2);
		//eggcount=1;
		//System.out.println("这个饼里有"+eggcount+"个鸡蛋");
	}
	public static void main(String[] args) {
		EggCake a=new EggCake();
		EggCake b=new EggCake(5);
		
	}
}

6.3Pool

public class Pool {
	static public int water=0;
	public void outlet() {
		if(water>2) {
			water=water-2;
		}else
			water=0;
	}
	public void inlet() {
		water=water+3;	
	}	
	public static void main(String[] args) {
		Pool out=new Pool();
		Pool in=new Pool();
		System.out.println("水池中现在的水量"+water);
		in.inlet();
		in.inlet();
		System.out.println("注水两次水池中现在的水量"+water);
		out.outlet();
		System.out.println("放水一次水池中现在的水量"+water);
		//说明water是公用的,in和out都对他造成了影响
    }
}

6.4Test

public class Test {
	{
		System.out.println("这里是非静态代码块");
	}
	static {
		System.out.println("这里是静态代码块");
	}
	
	public Test(int x) {
		System.out.println("这里是构造方法");
	}
	public void method() {
		System.out.println("这里是成员方法");
	}
	public static void main(String[] args) {
		//不创建实例只运行静态代码块
		Test a=new Test(1);//声明一个对象,用new操作符调用构造方法
		//特殊例子String str="abc";str也是一个对象
		a.method();//不调用不运行
		//new Test(1).method();
	}
}

7.1包装类-Integer

public class Integer1 {
	//包装类:从基本数据类型可以生成对象,在基本数据类型中可以调用一些方法
	/*将基本类型的值包装在一个对象中
	 * Number类,是BigDecimal,BigInteger,Byte,Shorter,Long,Float,Double
	 * 的父类,子类必须提供将表示的数值转换为各自数据类型的方法,
	 * 如intValue(),以int形式返回指定的数值
	 * 
	 */
	public Integer1() {
		//integer类有两种构造方法,同Double,Float,Byte类
		//Integer(int value)
		//Integer(String str),必须是数值型字符串
		
		/*布尔类构造方法
		 * Boolean(boolean value)
		 * Boolean(String str)
		 */
		/*Byte类将基本类型为byte的值包装在一个对象中
		 * Byte(byte value)
		 * Byte(String str),要用数值型string作为参数
		 */
		//Character类
		//Character(char value)
	}

	public static void main(String[] args) {
		Integer number=new Integer(5);
		Integer number1=new Integer("20");
		System.out.println(number);
		System.out.println(number1.intValue());
		String str[]= {"12","13","14"};
		for(String i:str) {
			int a=Integer.parseInt(i);//将字符串中的数字转化成int值
			System.out.println(a);
		}
		//返回一个表示integer值得string对象
		String str1= Integer.toString(456);
		System.out.println(str1);
		int a=Integer.MAX_VALUE;//最大 值
		System.out.println(a);
		
		Boolean b1=new Boolean(true);
		Boolean b2=new Boolean("ok");
		Boolean b3=new Boolean("true");
		System.out.println(b1);
		System.out.println(b2);
		System.out.println(b3);
		System.out.println(b1.compareTo(b2));
		System.out.println(b1.booleanValue());
		System.out.println(b2.toString());
	}

}

8.1Decimal_Format

import java.text.DecimalFormat;//放在最上边,否则编译错误
public class DecimalFormat1 {
	/*
	 * 数字格式化操作主要针对的是浮点型数据,double和float
	 * DecimalFormat是NumberFormat的一个子类,用于格式化十进制数字
	 */
	
	public DecimalFormat1() {
		
	}
	//数字格式化函数
	static public void SFormat(String pattern, double value) {
		DecimalFormat a=new DecimalFormat(pattern);//有参(格式化模式)构造函数
			String output=a.format(value);//格式化数值
			System.out.println(value+" "+pattern+" "+output);		
	}
	//数字格式化函数
	static public void APFormat(String pattern, double value) {
		DecimalFormat b=new DecimalFormat();//无参构造函数
		b.applyPattern(pattern);//赋予格式化模式
		System.out.println(value+" "+pattern+" "+b.format(value));	
		
	}
	public static void main(String[] args) {
		DecimalFormat b=new DecimalFormat();
		SFormat("###,###.###",123456.789);
		APFormat("##.###kg",1234.5678);
		//声明一个对象,对对象实行一个方法,将得到的结果返回给一个返回类型变量输出
		DecimalFormat c=new DecimalFormat();
		c.setGroupingSize(3);//设置数字分组
		//c.setGroupingUsed(false);不允许设置数字分组
		String output=c.format(123456.789);
		System.out.println(output);
	
	
	}
}

8.2Decimal_Math

import java.util.Random;
import java.math.BigDecimal;
public class Math2 {
	
	public Math2() {
		//math中有众多数学函数方法,他们被定义为static形式,在程序中可直接调用
	}
	
	public static void main(String[] args) {
	//取整函数 构造函数   public static double ceil(double a);
		System.out.println("返回一个大于等于参数的整数"+Math.ceil(5.7));
		System.out.println("返回最接小于等于参数的整数"+Math.floor(5.7));
		System.out.println("返回一个最接近参数的整数"+Math.rint(5.4));
		System.out.println("返回一个四舍五入长整型整数"+Math.round(5.4));
	//取最值	构造函数   public static int max(int a,int b);
		System.out.println("取最大值"+Math.max(4,8));
		System.out.println("取最小值"+Math.min(4,8));
		System.out.println("取绝对值"+Math.abs(-4.2));
	//三角函数
		System.out.println("cos60度为"+Math.cos(Math.PI/3));
	//随机数  Random r=new Random(seedvalue);随机数生成器种子
		System.out.println("随机产生0-1double数"+Math.random());
		Random r=new Random();//需要包
		System.out.println("随机产生大于0小于2整数"+r.nextInt(2));
		System.out.println("随机产生一个双精度值"+r.nextDouble());
	//BigDecimal 支持任何精度的定点数
		//构造方法:public BigDecimal(double val);
		//           public BigDecimal(string val);
		
		Math2 d=new Math2();
		System.out.println(d.add1(7.5, 8.6));
		
	}
	public  BigDecimal add1(double value1,double value2) {
		BigDecimal b1=new BigDecimal(Double.toString(value1));
		BigDecimal b2=new BigDecimal(Double.toString(value2));
		return b1.add(b2);//调用加法方法
	}
}

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值