day07 面向对象知识

来源:互联网 发布:淘宝直通车日常计划 编辑:程序博客网 时间:2024/06/05 12:01

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

0 0
原创粉丝点击