#单元测试 语法要求: @Test + public + void+ 没有参数
单元测试方法
是java运行程序的最小单位 格式@Test + public + void + 没有参数 不能输入参数
浮点数据不精确解决方案
BigDecimal(String) 注意: 构造函数的参数是String,不是double,传double还有不精确有坑,传一个空串 2. 做除法运算时除不尽会报错,所以需要使用重载的除法divide(要除的对象,保留的小数,取舍范围)
内部类:
- 能我们可以把内部类看作是外部类的一个特殊的成员
- 内部类可以直接使用外部类的所有资源,包括私有资源
- 外部类想要使用内部类的资源,需要创建内部类的对象才能使用
成员内部类被private修饰以后,无法被外界直接创建创建对象时使用
所以可以创建外部类对象,通过外部类对象间接访问内部类的资源
局部内部类
位置: 类里方法外
被private修饰
被私有化的内部类在main()中无法创建其对象 可以在私有内部类所处的外部类当中,创建一个公共的方法供外界调用,这个方法就可以用来创建私有内部类的对象并且调用私有内部类的功能
被static修饰
static: 静态 ,优先于对象加载,加载可以通过类名直接调用 静态只能调用静态 静态内部类可以不创建外部类对象,直接通过外部类类名.的方式创建内部类对象 如果静态内部类中含有静态方法,那么我们可以不创建一个对象,直接通过链式加载的方式使用这个方法
局部内部类
位置: 方法里 直接通过外部类创建对象,调用局部内部类所处的这个方法时,并不会触发局部内部类的功能 所以如果想要使用局部内部类的功能,需要在局部内部类所处的方法中创建局部内部类的对象并且调用这个局部内部类的功能
匿名内部类
匿名对象: 没有名字的对象,只能使用一次,一次只能调用一个方法,如果想要调用多次,或者是多个方法,就需要创建普通对象,或是多个匿名对象才能完成. 匿名内部类通常与匿名结合在一起使用
new Inter1(){实现方法体}.play();
package cn.tedu.review;
public class ReviewBox {
public static void main(String[] args) {
Integer i1 = new Integer(100);
Integer i2 = Integer.valueOf(100);
Integer i3 = 100;
Double d1 = new Double(6.6);
Double d2 = Double.valueOf(6.6);
Double d3 = 6.6;
System.out.println(i1.parseInt("777") + 111);
System.out.println(d2.parseDouble("7.7") + 1111);
int i = i1;
double d = d1;
}
}
package cn.tedu.review;
import java.util.Objects;
public class ReviewObject {
public static void main(String[] args) {
Student s1 = new Student(14453131,"zhu");
Student s2 = new Student(14453131,"zhu");
System.out.println(s1.name);
System.out.println(s1);
System.out.println(s1.hashCode());
System.out.println(s1.getClass());
System.out.println(s1.toString());
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
class Student{
int sno;
String name;
public Student() {
}
public Student(int sno, String name) {
this.sno = sno;
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return sno == student.sno && Objects.equals(name, student.name);
}
@Override
public int hashCode() {
return Objects.hash(sno, name);
}
@Override
public String toString() {
return "Student{" +
"sno=" + sno +
", name='" + name + '\'' +
'}';
}
}
package cn.tedu.review;
public class ReviewString {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
char[] value = {'a','b','c'};
String s3 = new String(value);
System.out.println(s1);
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
System.out.println(s1 == s3);
System.out.println(s1.equals(s3));
}
}
````
````java
package cn.tedu.review;
import java.util.Arrays;
import java.util.Locale;
public class ReviewString2 {
public static void main(String[] args) {
String s1 = "abcde";
System.out.println(s1.charAt(1));
System.out.println(s1.concat("bbb"));
String s2 = s1.concat("bbb");
System.out.println(s2);
System.out.println(s1.startsWith("a"));
System.out.println(s2.endsWith("b"));
String s3 = "abffff";
System.out.println(s3.indexOf("b"));
System.out.println(s3.lastIndexOf("f"));
System.out.println(s3.length());
System.out.println(s3.toUpperCase());
System.out.println(s3.toLowerCase());
String s4 = "ababaksdblskdblksdjfb";
System.out.println(s4.split("b"));
System.out.println(Arrays.toString(s4.split("b")));
String s5 = " kasl dfk ";
System.out.println(s5.trim());
System.out.println(String.valueOf(10) + 10);
System.out.println(Integer.valueOf(10) + 10);
String s6 = "sldkgskdg";
System.out.println(s6.substring(3));
System.out.println(s6.substring(3,7));
}
}
````
````java
package cn.tedu.number;
import java.math.BigDecimal;
import java.util.Scanner;
public class TestBigDecimal {
public static void main(String[] args) {
f2();
}
private static void f2() {
System.out.println("please input two number");
double a = new Scanner(System.in).nextDouble();
double b = new Scanner(System.in).nextDouble();
BigDecimal bd1 = new BigDecimal(a + "");
BigDecimal bd2 = new BigDecimal(b + "");
BigDecimal bd3;
bd3 = bd1.add(bd2);
System.out.println("add result: " + bd3);
bd3 = bd1.subtract(bd2);
System.out.println("substract:" + bd3);
bd3 = bd1.multiply((bd2));
System.out.println("multiply: " + bd3);
bd3 = bd1.divide(bd2,3,BigDecimal.ROUND_HALF_UP);
System.out.println("divide: "+bd3);
}
private static void f1() {
System.out.println("please input two number");
double a = new Scanner(System.in).nextDouble();
double b = new Scanner(System.in).nextDouble();
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
}
}
````
````java
package cn.tedu.junit2107;
import org.junit.Test;
import java.util.Scanner;
public class TestJunit {
@Test
public void TestFor(){
for(int i =0 ; i < 10; i++){
System.out.println(i);
}
}
@Test
public void TestFor2(){
int n = 2;
if(n == 1){
System.out.println("今天中午吃麻辣烫");
}else{
System.out.println("今天中午吃板面");
}
}
}
package cn.tedu.innerclass;
public class TestInner1 {
public static void main(String[] args) {
Outer o = new Outer();
o.find();
new Outer().find();
new Outer().find();
System.out.println(o.name);
Outer.Inner oi = new Outer().new Inner();
oi.delete();
}
}
class Outer{
String name;
private int age;
public void find(){
System.out.println("我是外部类的find()...");
new Inner().delete();
System.out.println(Inner.class);
}
class Inner{
int sum = 10;
public void delete(){
System.out.println("我是成员内部类Inner的delete()....");
System.out.println(age);
System.out.println(name);
}
}
}
package cn.tedu.innerclass;
public class TestInner2 {
public static void main(String[] args) {
new Outer2().getInner2Eat();
}
}
class Outer2{
public void getInner2Eat(){
Inner2 in = new Inner2();
in.eat();
}
private class Inner2{
public void eat(){
System.out.println("我是私有成员内部类的普通方法eat()...");
}
}
}
package cn.tedu.innerclass;
public class TestInner3 {
public static void main(String[] args) {
Outer3.Inner3 oi = new Outer3.Inner3();
oi.show();
new Outer3.Inner3().show();
Outer3.Inner3.fly();
}
}
class Outer3{
static class Inner3{
public void show(){
System.out.println("我是成员内部类Inner3" +
"的普通方法show(),,,");
}
public static void fly(){
System.out.println("我是成员内部类Inner3" +
"的静态方法fly()...");
}
}
}
package cn.tedu.innerclass;
import java.util.SortedMap;
public class TestInner4 {
public static void main(String[] args) {
new Outer4().show();
}
}
class Outer4{
public void show(){
System.out.println("我是外部类的普通方法show()...");
class Inner4{
String name;
int age;
public void eat(){
System.out.println("我是局部内部类的普通方法eat()...");
}
}
Inner4 i = new Inner4();
i.eat();
System.out.println(i.age);
System.out.println(i.name);
}
}
package cn.tedu.innerclass;
public class TestInner5 {
public static void main(String[] args) {
new Inter1(){
@Override
public void save() {
System.out.println("saving");
}
@Override
public void get() {
System.out.println("geting");
}
}.save();
new Inter2(){
@Override
public void dance() {
}
}.play();
new Inter3().find();
new Inter3().find2();
}
}
interface Inter1{
void save();
void get();
}
abstract class Inter2{
public void play(){
System.out.println("the normal method ...Inter2");
}
abstract public void dance();
}
class Inter3{
public void find(){
System.out.println("finding");
}
public void find2(){
System.out.println("finding2");
}
}
|