阶段性文档

代码仅仅是思想的一种体现。

阶段文档:
一,
 面向对象:
 1,是一种思想。
 2,将复杂事情简单化。
 3,从执行者转到指挥者。

 程序中的体现:完成功能,或者实现项目。只要去找已有的对象即可。
   如果java中并没有提供相对应对象,这时就建立一个相关的对象即可。

 面向有三个特征:
 封装:隐藏实现细节,提高安全性。
 继承:提高了代码的复用性,让类与类之间产生了关系。
 多态:提高了代码的扩展性。


 类与对象关系:
 类:对事物的描述,定义类就是在定义事物成员(属性和行为)
 对象:就是该类事物实在存在的个体。


 类中的成员:
 1,构造函数:用于给对象进行初始化。
  对象一建立,就会调用对应的构造函数进行初始化。

 
 2,成员变量,成员函数:
  通常成员变量都需要私有化,通过对应的set,get方法来对其进行访问。
 

 代码示例:
 class Person
 {
  private String name;
  private int age;
  Person()
  {
   this("baby",0);
  }
  Person(String name)
  {
   this(name,0);
  }
  Person(String name,int age)
  {
   this.name = name;
   this.age = age;
  }

  public void setName(String name)
  {
   this.name = name;
  }
  public void setAge(int age)
  {
   this.age = age;
  }

  public String getName()
  {
   return name;
  }
  public int getAge()
  {
   return age;
  }
  
  public void speak()
  {
   System.out.println(this.name+"::"+this.age);
  }

 }
 注意:一个类中都需要定义什么样的功能,需要参照该事物所在问题领域而言。

 
 介绍两个关键字:
 this:代表本类对象的引用。
 static:被对象所共享,可以直接被类名调用。

 成员变量和类变量的区别:
 成员变量:示例变量,在对象创建时,存在与对象所属的堆内存中。每个对象都有一份。
 类变量:类加载的时候,加载到方法区中,所有对象都共享一份。

 
 继承:
 子父类中成员的特点:
 成员函数:
  当子父类中的出现一模一样的函数时,会出现一个操作---覆盖。
 构造函数:
  子类中所有的构造函数,都会默认访问父类中的空参数构造函数,因为子类中的构造
  函数的第一行都有一句隐式的super();
  因为子类要知道获取的父类成员在父类中是如何初始化的。

  当父类中没有空参数的构造函数时,子类的构造函数就必须通过super或者this语句指定要访问的构造函数。

 涉及到了一个关键字:super。
 super:代表的就是父类对象的引用。


 final:
 1,final修饰的类不可以被继承。
 2,final修饰的变量是一个常量,只能赋值一次。
 3,final修饰的方法不可以被覆盖。
 4,内部类在局部时,只能访问被final修饰的局部变量。
 5,final可以修饰类,可以修饰方法,可以修饰变量。

 
 抽象类:
 1,被abstract所修饰。
 2,抽象类不可以被实例化。
 3,抽象类中可以存在抽象方法。
 4,只有子类覆盖了所有的抽象方法后,子类才可以被实例化。

 abstract:
 不可以和哪些关键字共存呢?
 final,static,private。

 

 接口:interface。
 接口中定义的成员有固定的修饰符:
 成员常量:public static final
 成员函数:public abstract

 接口的特点:
 1,接口用于功能的扩展。
 2,接口是对外提供的规则。
 3,接口降低了藕合性。
 4,接口支持多继承。
 5,接口的出现可以让类进行多现实。
 6,一类在继承一个类的同时,可以实现多个接口。


 
 多态:
 程序中的体现:
 父类或者接口的引用指向了子类对象。
 多态出现后:
 成员函数:
  Fu f = new Zi();
  f.show();
  编译看左边,运行看右边。

 
 
 PCI.的例子。

 interface PCI
 {
  void  open();
 }
 class MainBoard
 {
  void run(){}
  void usePCI(PCI p)
  {
   p.open();
  }
 }

 main()
 {
  MainBoard mb = new MainBoard();
  mb.run();
  mb.usePCI(new NetCard());

 }

 class NetCard implements PCI
 {
  public void open(){}
 }


--------------------------------------------------

 内部类:
 描述事物的时候该事物内部还有事物,通过内部类的形式来完成。

 内部类可以直接访问外部类中的成员,因为内部类持有了外部类的引用:外部类名.this
 
 而外部类需要建立内部类对象才可以访问内部类中的成员。

 匿名内部类:
 就是内部类的简写格式。
 但是要有前提:
  内部类需要继承外部类或者实现外部接口。

 格式:new 类名或者接口(){}
 
 必须要明确:匿名内部类其实就是一个子类对象。


------------------------------------------------

 异常:
 在程序运行时出现的一些不正常情况。

 其实就是java按照面向对象的思想对问题进行对象的封装。

 建立体系:特点:该体系中的所有对象都具备可抛性,也就是可以被throws throw关键字所操作。
 Throwable
  |--Error:一般不编写针对代码进行处理,需要对程序源码进行修正。
  |--Exception:可以处理的。

 定义功能时,如果该功能,因为参数的原因,或者其他原因,会出现一些不正常情况,
 需要在函数上通过throws关键字进行标识。
 让调用者进行处理。

 处理的异常的两种方式:
 1,调用者继续throws抛出。
 2,通过try catch进行处理。

 原则一:功能出现多少个异常,那么try处理时,就对应多少个catch。


 功能内部如果有异常被throw抛出,那么函数上一定要声明(除非编译时异常外)。

 throw 和throws的区别:
 throw:用在函数内,后面跟的是异常对象。
 throws:用在函数上,后面跟的是异常类,可以跟多个,用逗号隔开。


 自定义异常:
 其实就是对特有的情况进行描述。
 定义一个类继承Exception,让该子类具备可抛性。
 如果想要自定义信息,可以通过构造函数的super语句。
 class MyException extends Exception
 {
  MyException(String message)
  {
   super(message);
  }
 }

 异常Exception:分编译时检查异常,运行时异常(RuntimeException)。

 如果在函数内通过throw抛出的是RuntimeException或者其子类对象,那么可以不用在函数上通过throws声明。

 那么我们在自定义异常时多一个选择,就是可以继承RuntimeException。


 finally:
 该代码块很重要,里面存放的是一定会被执行的代码,通常用于关闭资源(如:数据库连接)。

 只有执行到System.exit(0)时,finally也不会被执行。

 异常的好处:
 可以引起程序的跳转,可以将正常流程代码与问题处理代码相分离。

-----------------------------------------------------------------

 包:
 1,对类文件进行分类管理。
 2,给类提供了多层命名空间。

 一般定义包为了保证类的同名区别,所以包名要尽量保证唯一性。使用域名居多。

 包与包之间的访问,只有两种权限可用的:public protected(该权限只有不同包中的子类可以用)

 类的全名称:包名.类名。
 为了简化类名的书写,使用一个关键字import.
 import:导入包的类。不导入包中的包。
 import pack.*;
 import pack.aa.*;

 

 

 


 


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值