面向对象02

Posted 0706jaro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象02相关的知识,希望对你有一定的参考价值。

1.代码块

* A:代码块概述
* 在Java中,使用{}括起来的代码被称为代码块。
* B:代码块分类
* 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代码块
* C:常见代码块的应用
* a:局部代码块(只要是和局部有关系的,都是和方法有关系的) 
* 在方法中出现;限定变量生命周期,及早释放,提高内存利用率
* b:构造代码块 (初始化块)
* 在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
* c:静态代码块 
* 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次
* 一般用于加载驱动
案例:

 1 public class Mxdx {
 2     //构造块,每次执行构造方法,都会执行它,就是说每次创建新对象都会先执行这个
 3     {
 4         System.out.println("gou zhao kuai");
 5     }
 6     //类加载的时候就执行,只执行一次,一般用于加载驱动:如数据库连接
 7     static {
 8         System.out.println("jin tai kuai");
 9     }
10     
11     private String name;
12     private int age;
13     public Mxdx() {
14         super();
15         // TODO Auto-generated constructor stub
16         System.out.println("kon can");
17     }
18     public Mxdx(String name, int age) {
19         super();
20         this.name = name;
21         this.age = age;
22         System.out.println("you can");
23     }
...set,get方法 36 }
 1 public class MxdxTest {
 2     public static void main(String[] args) {
 3         Mxdx m1 = new Mxdx();
 4         m1.setName("张三");
 5         
 6         Mxdx m2 = new Mxdx();
 7         m2.setName("李四");
 8         
 9         Mxdx m3 = new Mxdx("王五", 11);
10     }
11 }

运行结果:
jin tai kuai
gou zhao kuai
kon can
gou zhao kuai
kon can
gou zhao kuai
you can

2.继承

让类与类之间产生关系,子父类关系
目的:子类继承父类的变量和方法 
继承的好处和弊端:
* A:继承的好处
* a:提高了代码的复用性,父类就是被复用的
* b:提高了代码的维护性
* c:让类与类之间产生了关系,是多态的前提
* B:继承的弊端
* 类的耦合性增强了。类与类之间的关系太紧密,一边添加属性,另一边就多了一个,有的时候是期望的,但是有的时候是不期望的
* 开发的原则:高内聚,低耦合。就是指自己完成事情的能力,自己能完成就不要麻烦别人
* 耦合:类与类的关系
Java中类的继承特点:
* A:Java中类的继承特点
* a:Java只支持单继承,不支持多继承。(一个儿子只能有一个爹,多继承是有安全隐患的,如A继承B,C,因为BC中属性可能是矛盾的,这样继承会有问题,所以不能多继承)
* b:Java支持多层继承(继承体系),如A继承B继承C,田园犬继承犬继承动物
继承的注意事项和什么时候使用:
* A:继承的注意事项
* a:子类只能继承父类所有非私有的成员(成员方法和成员变量)
* b:子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法。
* c:不要为了部分功能而去继承
* 项目经理 姓名 工号 工资 奖金
* 程序员 姓名 工号 工资
* B:什么时候使用继承
* 继承其实体现的是一种关系:"is a"。
Person
Student
Teacher
水果
苹果
香蕉
橘子
采用假设法。
如果有两个类A,B。只有他们符合A是B的一种,或者B是A的一种,就可以考虑使用继承。
案例:

 1 class Demo3_Extends {
 2     public static void main(String[] args) {
 3         Son s = new Son();
 4         s.show();
 5     }
 6 }
 7 class Father {
 8     private String name;
 9     private void show() {
10         System.out.println("Hello World!");
11     }
12 }
13 ?
14 class Son extends Father {
15 }

 

以上是关于面向对象02的主要内容,如果未能解决你的问题,请参考以下文章

面向对象02

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂

Java中面向对象的三大特性之封装

Python面向对象编程-02

python之路之前没搞明白4面向对象(封装)