部分总结

第十次课

目标

回顾第三章

一、类

1、概念:

类: 模板(抽出像的部分)+复杂数据类型(引用数据类型)

2、组成

package 包名;

//导入其他类

import xxx.xxx.xx;

public final|abstract class 类名 extends 父类 implements 接口列表{

       //成员属性

       //静态属性

       //成员常量

       //静态常量

       //成员|构造块

       //静态块

       //构造器

       //成员方法(具体方法、抽象方法)

       //静态方法      

       //内部类

}

注意:类中即声明、定义属性、常量、方法、内部类,只能间接使用。

3、分类

1)、具体的类: à可以实例化

       a)、最终的类:不能被继承

       b)、可以被继承的类

2)、抽象类–>不能实例化,模板(不变+可变)

4、单继承多实现

 1)、extends: 继承最多一个类,如果没有写继承Object

 2)、implements: 实现多个接口,重写规范的方法

5、可见性

1)、public: 公开公共的,任何地方可见

2)、default: 默认的,包访问权限,同包可见

6、完整路径

 1)、package:包名.类名

2)、import: 导入类

7、类与类的关系

1)、依赖 2)、关联 3)、聚合 4)、组合 5)、继承 6)、实现

二、静态块

静态块:加载类的信息,仅加载一次

实例:

三、构造块

构造块:初始化对象信息,每创建一个对象执行一次,实例:

四、属性

1、作用: 存储可变的数据

2、分类

1)、成员属性|变量: 每个对象都拥有一份自己的存储空间、属性

2)、静态属性|变量: 共享静态的存储空间

 

3、定义格式

修饰符类型属性名 [=赋值];

 

4、访问成员属性: 必须存在对象才能访问,如果不存在,NullPointerException

有了对象后, dot(.) 访问

前提: 存在访问权限

 1)、存数据 : 对象名.属性名 =值

 2)、取数据:   其他变量=对象名.属性名

5、访问类属性|静态属性: 不用存在对象即可方法

前提: 存在访问权限

 1)、存数据 : 类名.属性名 =值

 2)、取数据:   其他变量=类名.属性名

6、默认值

0 'u0000' false null

publicclass Book {

    //静态属性

    privatestaticintnumber=1;

    //成员属性

    //编号

    private String no;

    //书名

    private String name;

    //价格

    privatedoubleprice;

    //作者

    private String author;

    //页数

    privateintpage;

   

    {     

       no ="bjsxt"+number++;

    }  

    publicstaticvoid main(String[] args) {

       Book book =new Book();

       book.name="book";

       System.out.println(book.no+"-->"+book.author);

    }

}

五、常量(只读)

与变量不同的地方

1、  值一旦确定不可改变

2、  没有默认值,确保值存在

1)、静态常量:  声明同时|静态块中赋值à在类加载时确保值存在

2)、成员常量: 声明同时|块|所有的构造器中赋值à在创建对象时确保值存在

全局常量: public static final

publicclass ConstantTest {

    //静态常量

    privatestaticfinalintMAX =100;

   

    //成员常量

    privatefinalintMIN =0;

   

    privatefinalintA;

    /**

     *

     * @param a

     * @param b  只读常量,方法中不能修改

     */

    public ConstantTest(inta,finalintb) {

       A =a;

       //b =10; //不能改变值

    }

   

    publicstaticvoid main(String[] args) {

       System.out.println(MAX);

       ConstantTest test =new ConstantTest(1,-1);

       System.out.println(test.MIN);

    }

   

}

六、构造器

构造器

1、作用: 初始化对象信息的,不是创建对象(new)的

2、特殊方法

1)、方法名:与类同名

2)、没有返回值类型|void

3)、调用时机:new 调用、this([实参])

4)、不能为以下修饰符 :  static final abstract

 

3、空构造:  javac编译检查是否存在构造器,如果没有会自动加入,否则,用手动的构造器

每个类都存在构造器,确保空构造存在

4、构造重载: 只看形参 +this([实参])

package com.bjsxt.oop.clz;

/**

 * 构造器...

 * @author Administrator

 *

 */

publicclass ConstructorTest {

   

    public/*final*//*static*//*abstract*/ConstructorTest(){

        System.out.println("ConstructorTest.ConstructorTest()");

    }

   

    public ConstructorTest(String str){

        System.out.println("ConstructorTest.ConstructorTest(String)");

    }

   

    public ConstructorTest(String str,intm){

        this();

        System.out.println("ConstructorTest.ConstructorTest(String,int)");

    }

 

   

    publicstaticvoid main(String[] args) {

        new ConstructorTest("a",12);

    }

}

六、构造器

1、作用: 初始化对象信息的,不是创建对象(new)的

2、特殊方法

1)、方法名:与类同名

2)、没有返回值类型|void

3)、调用时机:new 调用、this([实参])

4)、不能为以下修饰符 :  static final abstract

 

3、空构造:  javac编译检查是否存在构造器,如果没有会自动加入,否则,用手动的构造器

每个类都存在构造器,确保空构造存在

4、构造重载: 只看形参 +this([实参])

编程习惯:空构造确保存在,其他带参构造器不是参数越多越好,够用即可+后面Setter访问器

七、方法

1、作用: 解决某个问题(业务逻辑),操作数据|消息的传递。

2、分类

1)、成员方法

   a)、具体的方法:

修饰符[可见性 final] 返回类型|void 方法名(形参列表){

}

   b)、抽象的方法:

修饰符[public|protected|default abstract] 返回类型|void 方法名(形参列表);

抽象方法一定存在于抽象类中。

2)、静态方法

修饰符[public|protected|default|private final static] 返回类型|void 方法名(形参列表);

静态方法只能调用静态信息;成员方法可以调用一切。

Setter与getter访问器:替代属性的存储与获取

八、对象

对象: 一切皆为对象  new

 

1、创建对象的四种方式

1)、new

2)、克隆、拷贝

3)、反序列化

4)、反射

2、new 构造器

1)、如果使用一次,可以用匿名

new 构造器;

2)、如果使用多次,加入引入

类名引用名|对象名 =new 构造器;

3、引用

1)、java中一切皆为值传递

2)、一个对象可以被多个引用所指向,当其中一个对其发生变化,其他也可见

3)、一个引用在同一个时刻只能指向一个对象

4、拷贝对象

5、this:本类对象,隐式传递与成员方法|构造器中

1)、this.属性|方法

2)、this([实参列表])

3)、this

九、三大特性

1、封装: encapsulation

1)、目的: 高内聚,隐藏细节|数据

2)、途径: 访问权限 public protected default private

a)、public: 任何地方可见

b)、protected: 不同包下的子类(子类中且子类自身)可见

c)、default:  同包可见

d)、private: 本类可见

3)、javabean: 私有属性+setter与getter访问器à封装数据

publicclass NewsItem {

    //排名 ranking

    privateintranking;

    //关键字 keywords

    private String keywords;

    //指数 Index

    privateintindex;

    //详情 details

    private String details;

   

    public NewsItem() {

    }

    publicint getRanking() {

       returnranking;

    }

 

    publicvoid setRanking(intranking) {

       this.ranking = ranking;

    }

 

    public String getKeywords() {

       returnkeywords;

    }

 

    publicvoid setKeywords(String keywords) {

       this.keywords = keywords;

    }

 

    publicint getIndex() {

       returnindex;

    }

 

    publicvoid setIndex(intindex) {

       this.index = index;

    }

 

    public String getDetails() {

       returndetails;

    }

 

    publicvoid setDetails(String details) {

       this.details = details;

    }

}

2、继承:inheritance

1)、目的: 延续和扩增父类一切信息

2)、途径: extends单继承

3)、重写: 方法签名相同,返回类型<=  可见性>=

4)、super: 子类中的父类

a)、super.属性|方法

  b)、super([实参])

5)、final: 修饰类、方法、属性

6)、抽象类: abstract 不能实例化可能包含抽象方法–>模板

3、多态:polymorphism

1)、目的: 低耦合,以不变应万变(灵活)

2)、途径: 继承、重写、父类的引用指向子类的对象|接口的引用指向实现类的对象

3)、接口: interface   implements—>多实现接口

 a)、公共的抽象方法

 b)、全局常量

十、eclipse 工具

1、目标: 快速开发的利器

2、组织管理: 工作空间

建立工程–>建立包 -->建立类与接口

错误解决: ctrl+1

调试代码

目的: 理解程序的执行流程、排除错误

打开调试界面

1)、打断点–>可执行的代码上面双击行号即可

2)、调试界面

Debug asàJava Application

F5:进入方法内部,观察细节

f6:不进入方法内部,执行方法,看的结果方法

f7:跳出方法

f8:  一个断点结束

原文地址:https://www.cnblogs.com/yuyufeng/p/5335974.html