------- android培训、java培训、期待与您交流! ----------
1:内部类
(1)在一个类A里面定义了一个类B,B类就被称为内部类。(2)什么时候使用内部类:
当两个类存在如下关系:
A可以直接使用B类的成员
B类使用A的成员时需要创建对象
就可以吧A类定义为B类的内部类。
(3)内部类的位置:
成员位置:成员内部类 定义在成员位置上
局部位置:局部内部类 定义在方法中
(4)成员内部类要掌握的修饰符:
A:private
一般成员内部类都会有private修饰。起到封装的作用。
这样外界就不能去创建对象了。
B:static
用外部类做限定使用内部的内容。
(5)局部内部类
A:普通局部内部类 -- 很简单
B:匿名局部内部类(掌握 -- GUI,Android)
a:就是没有名字的局部内部类。
b:前提 外界存在这个一个类(抽象类)或者接口(大部分都是接口)。
c:格式:
new 类名或者接口名()
{
重写方法;
或者自定义方法(不建议)
};
注意:其实这是一个实现了接口的匿名对象
2:包及导包
(1)包
A:文件夹,用于区分同名的类。
B:定义包格式(掌握)
package 包名;
C:注意:
包定义必须放在程序的第一行。不管注释。
使用的时候,要注意类的全路径 包名.类名
D:带包的编译和运行
a:手动创建包
b:自动创建包
(2)导包
A:如果每次都是全路径使用类,太麻烦。所以java提供了关键字供我们使用。
import
B:格式:
import 包名.xx.yy.类名;
(3)面试题
包,导包,类名的定义顺序。
package cn.itcast;
import java.util.Scanner;
public class Test
{
}
3:权限修饰符
我通过不同包下类之间的访问测试了权限修饰符
规则如下:
本类 同一个包下 不同包的子类 不同包的无关类
private Y
默认 Y Y
protected Y Y Y
public Y Y Y Y
注意:
一般:成员变量都是private。成员方法都是public。
4:其他修饰符的组合使用
类 成员变量 成员方法 构造方法
private Y Y Y
默认 Y Y Y Y
protected Y Y Y
public Y Y Y Y
final Y Y Y
static Y Y
abstract Y Y
组合使用:
类:权限修饰符+abstract/final
成员变量:权限修饰符+final/static/fianl static+数据类型 变量
成员方法:权限修饰符 abstract/static/final+返回值类型+方法名
5:Object
(1)Object类是所有类的根类。超类。所有类都直接或者间接继承自Object类。
(2)Object的方法:
A:toString() 返回的是对象的字符串表示。没有什么意义,一般也会重写。
B:hashCode() 返回对象的哈希值
C:getClass() 返回的是字节码文件对象的描述类对象(反射)
D:finalize() 用于垃圾回收使用
E:equals() 默认情况下,比较对象的地址值。可能会根据需求重写。
(3)案例:
class Student
{
private String name;
private int age;
private String address;
public Student(){}
//带参构造...
//get/set方法省略
public String toString()
{
return "name:"+name+",age:"+age+",address:"+address;
}
public boolean equals(Object obj)
{
if(this==obj)
{
return true;
}
if(!(obj instanceof Student))
{
return false;
}
Student s = (Student)obj;
return this.name.equals(s.name) && this.age == s.age && this.address.equals(s.address);
}
}
------- android培训、java培训、期待与您交流! ----------