Java从入门到精通 第14章 关于类的专题研究

14.1众类鼻祖——Object类

Object类中常用的方法及操作功能

14.1.1 取得对象信息:toString()

System.out.println(p)//直接输出对象
System.out.println(p.toString)//二者的输出结果一样
//Persion@1db9742
//覆写Object类的方法
class Person extends Object{
	String name="teenway";
	int Num=1009;
	public String toString(){
		return "I am "+this.name+", Num:"+this.Num;
	}
}

class Test{
	public static void main(String[] args){
		Person p=new Person();
		System.out.println(p);
	}
}

14.1.2对象相等判断方法:eqauls()

System.out.println(p1.equals(p2)?"同一个人":"不是同一个人");
//实际上是比价两个对象的地址,会判定为不同的人
//如果要比较需要覆写Object类的equals方法

14.1.3 对象签名 hashCode()

//书里讲的不是很明白,自己去查

14.1.4 使用Object接收任意引用数据类型对象

//使用Object接收数组
int temp[]={1,3,5,3,6};
Object obj=temp;
if o instanceof int[]
  int x[]=(int[])o;
//虽然Object类和数组之间没有任何关系,但是数组是引用类型,所以可以用Object接收
//接口和Object更不会有任何关系

//因为接口本身不可能去继承任何一个类,可是在Java设计的时候由于许多地方都需要
//接口的支持,所以Object依然可以接收接口类型
A a=new B();//class B implements interface A
Object obj=a;
A x=(A)obj;

14.2内部类

14.2.1 内部类的基本定义

内部类的作用:
(1)提供了更好的封装,可以把内部隐藏在外部之内,不允许同一个包的其他类访问该类
(2)内部类成员可以直接访问外部类的私有数据,因为内部类被当成其外部类成员,同一个类的成员之间可以相互访问。但外部类不能访问内部类的实现细节,例如内部类的成员变量
(3)匿名内部类适用于创建哪些仅需一次的类

//内部类的使用
Outer outer=new Outer();
outer.inst();

14.2.2 使用static定义的内部类就是外部类

//静态成员不能访问非静态成员
//静态类内部类不能访问外部类的实例成员,只能访问外部类的类成员

14.2.3 在方法中定义内部类

14.3匿名内部类

14.4 匿名对象

//匿名对象的使用
new Persioin.talk

14.5 this 关键字的使用

//eample1
this.name=name
this.age=age

//emaple2
if(this.name.equals(p.name)&&(this.age.==p.age)

//emaple3
//调用本类无参构造方法
this();

14.6 static关键字的作用

14.6.1 使用static定义属性

//用static修饰的属性是公共属性
String name;
static String city="中国";
int age;

Persion p1,p2,p3;
p1.city="美国";
//则所有的人都来自美国了,不需要一个一个的修改

14.6.2 使用static定义方法

//使用static定义的方法可以由类名称直接调用
public static void setCity(String c)
Person.setCity

14.6.3 static main方法

由于虚拟机需要调用main()方法,所以该方法的权限必须是public,
又因为Java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static的,该接收一个String类型的数组参数,该数组中保存执行Java命令时传递所运行的类的参数

14.6.2 static应用——static代码块及静态导入

//static代码块经常用来初始化类属性,只执行一次,优先于static方法

14.7 final关键字的作用

14.8 instanceof关键字的作用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基础知识模块提供有关Java工具软件及Java基础语法知识的教学资源。这部分系统归纳总结了本课程基本理论知识及Eclipse软件操作的基本方法、技巧,可供学生自学,可作为学生入门学习教程或基础知识资料库。基础知识模块的每一个知识点只包含一个教学资源文档。教学资源文档由文本、图片和附件组成。 进阶知识模块提供Java高级编程知识的教学资源。此模块中的每一个进阶知识都是一个专题,包含多个教学资源文档。 实例教程模块提供了从简单到复杂的Java实例讲解文档和代码,以知识点为线,采取循序渐进的方式,引导学生对相关知识的掌握。每一个实例教程包含实例题目、实例内容、实例讲解、运行结果和代码附件。 拓展知识模块精选了网络上的相关知识,作为学生额外学习的内容。既可拓宽学生知识面,又可以加速加深学生对本课程的理解,提高他们对专业知识的实际应用能力。 学生作品展示模块,包括学生课程设计、项目实训的优秀作品及大赛作品等。作品展示要求有标题、作者名、内容介绍、效果展示、附件(相关文档、源代码或发布文件)等内容。 相关资源包括相关软件资源、优秀网站和电予书下载等。 在线测试模块,可以有效地检验学生对Java知识的掌握程度。此模块不做强制要求,可每组自己决定怎么做。 系统包含三用户角色:系统管理员、教师和学生。学生角色拥有阅读、下载所有的资源的权限;教师角色拥有上传资源,管理自己上传资源的权限;系统管理员角色拥有创建教师用户,管理所有资源等权限,系统只有一个系统管理员。学生通过网站注册拥有学生角色权限

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值