码迷,mamicode.com
首页 > 编程语言 > 详细

Java内部类

时间:2019-11-13 21:49:57      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:级别   public   使用   取整   java   img   匿名内部类   builder   xtend   

参数类型:
数据类型:
基本类型:
引用类型:
数组

接口

参数类型/返回值类型是类和接口的情况:
1.参数类型是普通类的情况
class Student{
public String name;
}

public class Test{
    public static void main(){
        
    }
    
    public static void show(Student s){
    
    }//为什么写成静态,因为main是静态的,如果show是非静态的,那么main是无法调用的。静态的是先人,先进内存。非静态的是后人
}

2,参数类型是抽象类的情况
public abstruct class Person{
protected abstract void show(){}
}
public class Student extends Person{
public void show(){}//修饰符>=原来的
}
public class Test{
public static void main(){

    }
    
    public static void show(Student s){
    
    }
 }
当你看到的参数是抽象类的时候,需要传递的是这个类的子类对象,她是抽象类是不能创建对象的。

3,参数类型是接口的情况

public interface Person{

}
class Student implements Person{
}
public Test{
public static void Main(String[] args){
Person person = new Student();
show(person);
}
public static void show( Person person){
}
}
当你看到方法得参数是接口的时候,需要传递的是这个接口的子类对象,她是接口不能创建对象
内部类:
内部类可以直接访问外部类的成员包括私有
外部类不能直接访问内部类的成员,必须先创建内部类的对象

内部类的分类:
在类的成员位置
成员内部类如何创建对象使用?
外部类名.内部类名 对象名 = 外部类对象.内部类对象;
Outer.Inner oi = new Outer().new Inner();//仅仅对public的内部类有效
但是我们通常使用private的内部类

成员内部类为什么创建对象的格式是这样的?
直接写Inner找不到Inner在哪,这样写是用Outer限定一下,为什么可以这样限定呢?
因为此时还没有在内存开辟空间,属于字节码级别,类似static
告诉JVM Inner在Outer里面
new Outer.new Inner()
非静态的成员是随着对象的存在而存在的,
没有Outer对象,Outer类里的成员是不能用的
所以要想有Inner的对象,必须现有Outer的对象
Outer o = new Outer();
Outer.Inner oi = o.new Inner();
修改而来的。

在类得局部位置
局部内部类
    public class Outer{
        public void show{
            局部内部类
        }
    }
    
局部内部类中的匿名内部类    
局部内部类可以访问局部变量,但是此时的局部变量视为前面有一个隐藏的final  

技术图片

API:
Scanner
Random
String
StringBuilder
ArrayList
集合详解:

import java.util.ArrayList
构造方法public ArrayList()
添加方法,E指的是泛型
public boolean add(E element)
public void add(int index, E element)

Math
System
二者没有构造方法,不能创建对象,为啥设计成这样。

因为这个类内的方法非常常用,所以我们会把这样的类叫做工具类,
为了不让人创建对象来用,用private修饰构造方法,则只可以用类名调用。
把所有方法设定为static来使用,防止一些不懂的人创建对象。

Object
重写:
toString:
为什么String StringBuilder ArrayList这三个打印的是内容,其他的打印地址。

<IMG src="file:///C:\Users\Maomao\AppData\Roaming\feiq\RichOle\3366526921.bmp"> 
    
    
equals: 

Math:
1. abs:
int abs(int num) //absolute 绝对值
System.out.println(Math.abs(-10));//10
2. ceil:
double ceil(double a);//求天花板(ceil)数,向上取整
System.out.println(Math.ceil(-10.9));//-10.0
3. floor:
double ceil(double a);//求地板(floor)数,向下取整
System.out.println(Math.ceil(-10.9));//-11.0
4. round:

5. random:
    Random r = new Random();
    return r.nextInt();//nextInt(100);
    
    
System类

Java内部类

标签:级别   public   使用   取整   java   img   匿名内部类   builder   xtend   

原文地址:https://www.cnblogs.com/maomaodesu/p/11853383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!