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() 返回该对象的字符串表示,一般都重写此方法,观察对象.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值