//java浮点数保留n个小数位问题
法一:
import java.text.DecimalFormat;
DecimalFormat res = new DecimalFormat("0.000");
System.out.println(res.format(使用格式化的浮点数数));
法二:
System。out.printf("%n.mf",浮点数);
方法一:使用printf
System.out.printf(“%4.2f/c/b(布尔值)/d/e/s(字符串)”);
默认情况下,浮点值显示小数点后六位
%e要求必须是浮点型的值
要在格式里输出直接量%,必须使用%%
例如:
import java.text.DecimalFormat;
import java.util.Scanner;
public class cicle {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int r = in.nextInt();
double d = r * r * Math.PI;
DecimalFormat df = new DecimalFormat("#0.0000000");
System.out.println(df.format(d));
System.out.printf("%.7f",d);
}
}
方法二: 使用DecimalFormat
BigDecimal类:是为了更加精确的存储小数,精确的表示、计算浮点数的运算;不可变的、任意精度的有符号的十进制数;
DecimalFormat df = new DecimalFormat("#0.0000000");
System.out.println(df.format(d));
//#0.00代表保留两位小数
//java多实例(无结束条件)
Scanner in=new Scanner (System.in);
while(in.hasNext())
{
........
}
//判断两个浮点数的大小方法
Math.abs(a-b)<1e6
//java定义函数
Java的函数必须定义在类的内部,成为类的成员。定义一个函数,要像这样写:
<返回类型> <方法名称>(<参数表>) {
<方法体>
}
public static void dfs(int x,int y){
..............
}
封装:
1、封装的代码实现两步:
第一步:属性私有化
第二步:1个属性对外提供两个set和get方法。外部程序只能通过set方法修改,只能通过get方法读取,
可以在set方法中设立关卡来保证数据的安全性。
在强调一下:
set和get方法都是实例方法,不能带static。
不带static的方法称为实例方法,实例方法的调用必须先new对象。
set和get方法写的时候有严格的规范要求:(大家要按照规矩来)
set方法长这个样子:
public void set+属性名首字母大写(1个参数){
xxx = 1个参数;
}
get方法长这个样子:
public 返回值类型 get+属性名首字母大写(无参){
return xxx;
}
// setter and getter方法
public void setTitle(String s){
//title = s;
}
public String getTitle(){
//return title;
}
2、static关键字和this关键字
static的重点以及结论
2.1、static修饰的统一都是静态的,都是类相关的,不需要new对象。直接采用“类名.”访问。
2.2、当一个属性是类级别的属性,所有对象的这个属性的值是一样的,建议定义为静态变量。
static修饰的方法静态方法 static修饰的变量静态变量
static修饰的都用“类名.”访问。(都不需要new对象,就能访问)
static{} 是静态代码块,在类加载时执行,并执行一次。
{} 实例语句块,在构造方法执行前执行,构造一次执行一次。
static的也能用“引用.”的方式访问,不过运行时仍然和此对象无关,
空指针异常充分的说明了以上的结论。(用空引用访问静态的不会出现空指针异常)
this的重点以及结论
this用法就两个:this. 和 this()
this不能用在静态方法中。只能使用在实例方法中。
this. 大部分可以省略,区分局部变量和实例变量的时候不能省略。
this() 只能出现在构造方法第一行,通过当前构造方法调用本类其它构造方法,代码复用。