电子产品网站建设分析的摘要酒店网站设计模板
电子产品网站建设分析的摘要,酒店网站设计模板,买到域名网站怎么做,wordpress删除多余图片面向对象
概念 现实生活#xff1a; 类#xff1a;抽象的概念#xff0c;把具有相同特征和操作的事物归为一类 先有实体#xff0c;再有类的概念 代码世界#xff1a; 类#xff1a;抽象的概念#xff0c;把具有相同属性和方法的对象归为一类 编写顺序#xff1a;先有…面向对象
概念 现实生活 类抽象的概念把具有相同特征和操作的事物归为一类 先有实体再有类的概念 代码世界 类抽象的概念把具有相同属性和方法的对象归为一类 编写顺序先有类再创建对象 类的作用类相当于一个模板刻画出具有相同属性和方法的对象 类 类中只有属性和方法 属性也叫做全局变量属性分为成员变量和静态变量 方法分为成员方法和静态方法 public class 类名{//属性也叫做全局变量分为成员变量和静态变量//成员变量数据类型 变量名;//静态变量static 数据类型 变量名;//方法分为成员方法和静态方法//成员方法访问修饰符 返回值类型 方法名([参数]){}//静态方法访问修饰符 static 返回值类型 方法名([参数]){}
}
对象 创建对象的语法类名 对象名 new 类名(); new 构造方法; 属于对象就在堆内存中开辟空间 类名 对象名 对象名属于引用存的是对象在堆内存中的地址 操作对象 设置成员属性 获取成员属性 调用成员方法 成员属性/成员变量 语法结构数据类型 变量名; 编写的位置类里方法的外面 成员变量 vs 局部变量 成员变量类里方法的外面的变量并且系统会赋默认值作用在整个类中 局部变量方法内的变量系统不会赋默认值作用在方法中 成员方法 语法结构访问修饰符 返回值类型 方法名([参数]){} 编写的位置类里 成员方法 vs 静态方法 成员方法属于对象的方法必须使用对象调用 静态方法属于类的方法使用类名调用 构造方法 含义和new一起是创建对象的功能 特点 与类名相同的方法 没有返回项 注意 1. 当类中没有写构造方法时系统会默认添加无参构造无参数的构造方法 构造方法可以重载的 有参构造好处创建对象时把数据赋值给该对象 public class Person{//注意这种不是构造方法是成员方法public void Person(){}
}
private - 私有化 含义私有化 作用 1. 修饰属性私有化属性不能让外界使用 修饰方法私有化方法不能让外界使用 应用场景不想让外界访问的属性和方法就用private修饰 封装 步骤 私有化属性 添加get获取/set设置方法 好处外界不可以直接操作属性必须通过get、set方法操作可以在get、set方法中做额外的功能 this - 本对象 含义代表本对象this出现方法里表示调用该方法的对象 作用 this.属性调用本对象的成员变量 this.方法调用本对象的成员方法 this()调用本对象的构造方法在一个构造方法中的第一句调用另外一个构造方法 分包 基本作用防止了类的重名问题 项目作用项目中有众多的类把相同功能的类放在同一个包中方便管理 工具类com.dream.util/tool 实体类com.dream.vo/bean/entity/bto/pojo 数据库类com.dream.dao/mapper static - 静态的 作用 修饰属性 类加载到方法区时JVM会扫描该类的所有属性 并把静态属性加载到静态区中静态属性属于类属性 该类所有的对象都共享该属性 静态属性直到项目结束时才会被回收 注意静态属性使用类名调用 修饰方法 属于类方法直接用类名调用 应用场景工具类 静态代码块 静态代码块是类加载到方法区时才会被调用该代码块只能初始化静态变量 代码块是创建对象时优先于构造方法调用该代码块可以初始化成员变量和静态变量 构造方法是创建对象时调用该方法可以初始化成员变量和静态变量 成员变量 vs 静态变量 成员变量属于对象的变量每个对象独享一份 静态变量属于类的变量每个对象都共享一份 继承 使用场景多个类似的类有相同的属性和方法就可以把相同属性和方法抽取到父类 好处减少了代码的冗余 深入继承 创建子类对象会不会调用父类构造方法 会 创建子类对象会不会创建父类对象 不会 创建子类对象为什么会调用父类构造方法 目的是将父类的属性存放在子类对象中 创建子类对象先调用父类构造方法还是子类构造方法 先调用子类构造方法 创建子类对象先完成父类构造方法还是子类构造方法 先完成父类构造方法 子类可以继承父类私有化的属性和方法吗 可以但是只能间接调用 super - 父类 含义代表父类 作用 在子类中 super.属性调用父类非私有化的成员变量 super.方法调用父类非私有化的成员方法 super()调用父类非私有化的构造方法 重写 含义重写也叫做复写将父类中方法在子类中重新编写一遍 应用场景父类方法不满足子类需求时子类就可以重复父类的方法 条件 在子类中重写父类的方法 返回值、方法名和参数列表必须和父类重写的方法一致 访问修饰符不能比父类重写的方法更严格 访问修饰符 含义修饰类、方法、属性定义使用的范围 学习做实验 访问修饰符本类本包其他包子类其他包privateOK默认的OKOKprotectedOKOKOKpublicOkOKOKOk Object 含义基类也叫做超类Object是所有类的祖先类 注意如果一个类没有明确继承的父类默认继承Object equals比较两个对象内存地址是否相同 hashCode获取对象的hash值 getClass获取类的字节码文件对象 toString获取对象的字符串表示 标杆作用Object作为所有类的父类定义了几个方法方便子类去重写 equals的标杆作用比较两个对象是否相同不同的对象比较规则不一样所以子类重写即可 toString的标杆作用每个子类都有不同的属性重写toString直接打印该对象中所有的属性方便观察数据 final 含义最终 作用 修饰类该类不能被继承 修饰方法该方法不能被重写 修饰变量变成常量不能重新赋值 常量的命名规则全大写单词之间用下划线隔开 常量的生命周期存在常量池中直到项目结束才会被销毁 抽象类及抽象方法
//抽象类
public abstract class 类名{//抽象方法public abstract void method();
} 抽象方法交给非抽象的子类去实现(重写) 应用场景当一个方法必须在父类中出现但是这个方法又不好实现就把该方法变成抽象方法交给非抽象的子类去实现 面试题 1.抽象类不能有构造方法 抽象类可以有构造方法 2.抽象类中只能有抽象方法 抽象类中有非抽象方法成员方法和静态方法 3.抽象类中不可以没有抽象方法 抽象类中可以没有抽象方法但是毫无意义 4.如果父类是抽象类则子类必须实现父类的抽象方法 不一定子类如果是抽象类可以不实现父类的抽象方法 5.可以使用new关键字来创建抽象类对象 不可以创建的是匿名内部类的对象 接口 含义特殊的抽象类 注意 JDK1.7时接口中只能有静态常量和抽象方法 JDK1.8开始接口中添加了静态方法和默认方法 应用场景接口更像一个规范 抽象类 vs 接口 抽象类成员变量、静态变量、静态常量、成员方法、静态方法 接口静态常量、静态方法(JDK1.8)、默认方法(JDK1.8) 面试题 1.一个类可以实现多个接口可以 2.一个接口可以实现多个接口不可以接口与接口的关系是多继承 3.接口里面的方法不一定都是抽象的JDK1.7时接口里只能有抽象方法JDK1.8时接口可以有抽象方法和默认方法 4.接口解决了类的单继承问题是的因为类与类是单继承类与接口是多实现 5.一个类是否可以继承一个类并同时实现多个接口可以 6.接口可以new对象接口是特殊的抽象类但是本质还是抽象类抽象类是不可以new对象的接口也是不能new对象new出来的匿名类内部类的对象 类 - 接口的关系 类 - 类单继承 类 - 接口多实现 接口 - 接口多继承 多态 理解多种形态 分类 类的多态子类对象指向父类引用父类引用中存储的是子类对象在堆中开辟的地址 接口的多态实现类对象指向接口的引用接口的引用中存储的是实现类对象在堆中开辟的地址 设计原则前人总结的经验告诉我们什么不该做 设计模式前人总结的经验告诉我们一步一步的怎么做 OCP原则 O - Open - 在需求升级时对于创建类是欢迎的 (因为创建类对于原来代码的影响几乎为0) C - Close - 在需求升级时对于改动原有类是拒绝的 (因为原有类之间的关系是趋于稳定状态如果改动原有类 很有可能打破这种平衡导致bug的出现) P - Principle - 原则 优缺点 优点提高程序的维护性在需求升级/迭代时不违反OCP原则 缺点不能调用子类独有的属性和方法 对象转型 自动转型 - 向上转型子类类型 转 父类类型 注意 1. 向上转型就是多态 向上转型后可以调用父类属性 向上转型后可以调用父类方法 向上转型后不可以调用子类独有的属性 向上转型后不可以调用子类独有的方法 向上转型后可以调用子类重写父类的方法 强制转型 - 向下转型父类类型 转 子类类型 内部类 理解一个类中再声明另外一个类 分类 1. 成员内部类 静态内部类 接口内部类 局部内部类 匿名内部类 应用场景 B类的对象只在A类中使用并且B类对象使用到了A类所有的属性就可以将B类作为A类的成员内部类 B类的对象只在A类中使用并且B类对象使用到了A类静态的属性就可以将B类作为A类的静态内部类 抽象类的子类只创建一次对象就没必要创建子类直接使用匿名内部类new 抽象类 接口的实现类只创建一次对象就没必要创建实现类直接使用匿名内部类new 接口
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87645.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!