day07 面向对象知识

package关键字

就是使用包名将程序文件1个个隔离.程序第一行

语法:pachage 包名;

com._520it.crm.util;

编译带有package的类

javac -d xxx.java

运行

java com._520it.xxx


import

导入包名,需要调用的时候

静态导入:

package _import;
import static java.util.Arrays.sort;
public class test {
	public static void main(String[] args) {
		int[] arr = {11,22,55,02};
		sort(arr);
		System.out.println(java.util.Arrays.toString(arr));
	}
}	

封装

为了隐藏对象功能实现,使用者没必要知道细节.

访问修饰符

public 权限最大

private 仅类中访问

默认 类内部,同一个包

protected 类内部,同一个包,子类

this关键字

哪个对象调用了this所在的方法,该方法中的this就是哪一个对象

this的使用:

1\解决成员变量和参数之间的二义性,必须使用(get/set)

2\同一个类中多个实例方法间的调用.

package _this;

public class demo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new newDemo().setxxx();
	}

}
class newDemo{
	void setxxx(){
		this.setyyy();
		System.out.println("这里是xxx");
	}
	void setyyy(){
		System.out.println("这里是yyy");
	}
}
3\将当前对象作为参数传递到另一个方法

4\作为方法的返回值(链式编程)

package _this;

public class demo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new newDemo().append().append();
	}

}
class newDemo{
	void setxxx(){
		this.setyyy();
		System.out.println("这里是xxx");
	}
	void setyyy(){
		System.out.println("这里是yyy");
	}
	newDemo append(){
		return this;
	}
}
5\构造器重载的互相调用  (构造器中出现this必须在第一行)

少参数调用多参数


6\static不能和this一起使用

static优先于对象存在,static是加载虚拟机就存在了,而this是new出来的

引出继承

子类可以继承到父类哪些成员

  1):若父类成员使用public或者protected修饰,子类可以继承.

  2):若父类成员使用包访问权限(不写):

            若子类和父类在同包中,可以继承.

            若子类和父类不在同包中,则不能继承.

  3):若父类成员使用private修饰,子类不能继承.

  4):父类的构造器,子类也继承不到.(两个类名都不同,怎么继承?)

所有类(不包括objec),都有一个根类,object.

java中的继承支持单继承,不支持多继承

方法覆盖

当子类继承与父类的时候,使用的方法不一定适合于子类,那么就使用方法覆盖.

方法覆盖遵循一同二小一大:

一同:方法名相同

二小:子类方法的返回类型应该小于等于父类方法的返回类型

子类方法的返回类型要么等于父类方法的返回类型,要么是父类方法返回类型的子类.

子类方法不能抛出新的异常

一大:子类方法的访问修饰符,必须大于等于父类方法的访问修饰符

java5开始,凡是方法覆盖的方法上面都有@override

super关键字

当前对象的父类对象

super应用的场景

super.fly(); //调用父类的方法

suerp.name; //调用父类的成员变量

super(参数) //调用父类的构造方法

子类的创建过程:

  1):创建子类对象时,会调用子类的构造器,而在调用子类构造器之前,会先调用父类的构造器.

  2):先对父类做初始化,再对子类做初始化.

隐藏问题(把之前的挡住了)

1.局部变量和成员变量同名.使用this来解决

2.在满足情况下,子类和父类成员变量同名,子类隐藏了父类的变量,使用super.成员变量来解决

3.在满足情况下,子类和父类存在相同的静态方法

Object类

protected void finalize()

public boolean equals(Object obj)

public int hashCode() 返回一个hash值,决定了该对象在哈希表中的存储位置.

public String toString() 返回该对象的字符串表示,一般都重写此方法,观察对象.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值