zoukankan      html  css  js  c++  java
  • 部分总结

    第十次课

    目标

    回顾第三章

    一、类

    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:  一个断点结束

  • 相关阅读:
    面试中遇到递归算法题别慌--常见递归算法题的解题思路
    Xml日志记录文件最优方案(附源代码)
    linux下源码安装软件
    文本比较算法Ⅴ——回顾贴,对前面几篇文章的回顾与质疑
    从内存中直接运行PE程序
    谈谈Linux内核驱动的coding style
    【全面解禁!真正的Expression Blend实战开发技巧】第六章 认识ListBox
    玩转C链表
    麻省理工《C内存管理和C++面向对象编程》笔记---第一讲:认识C和内存管理
    Dll注入技术之输入法注入
  • 原文地址:https://www.cnblogs.com/yuyufeng/p/5335974.html
Copyright © 2011-2022 走看看