构造方法

java之单例模式

ぐ巨炮叔叔 提交于 2019-12-02 09:15:16
一 . 定义 单例也叫单态模式, 当一个类被创建之后, 只能产生一个实例供外部访问, 并且提供一个全局访问的方法 单例的最终目的就是保证一个类在内存中只能有一个实例(对象) Java中频繁创建和销毁类对象都会占用一部分系统资源,使用单例模式可以提高性能 单例模式创建的对象不会被回收, 过多的单例容易造成内存溢出 二 . 创建过程 私有化构造方法 (使用private 修饰) 在其内部产生该类的实例化对象,并将其封装成private static 类型 定义一个静态的方法返回该类的实例 三 . 饿汉式 和 懒汉式 饿汉式举例 public class Singleton { //创建静态变量 private static Singleton singleton = new Singleton ( ) ; //私有构造方法 private Singleton ( ) { } //提供外部访问接口 public static Singleton getInstance ( ) { return singleton ; } } 懒汉式举例 public class Singleton { //创建静态变量 private static Singleton singleton ; //私有构造方法 private Singleton ( ) { } //提供外部访问接口 public

java小白成长记---(6)

烈酒焚心 提交于 2019-12-02 09:12:36
_06_面向对象之对象与类、封装 一. 面向对象介绍 1. 面向过程与面向对象 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了; 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 2. 类和对象 Java是面向对象的程序设计语言,类是面向对象的重要内容,我们可以把类当成一种自定义数据类型,可以使用类来定义变量,这种类型的变量称为引用型变量。也就是说,所有类是引用数据类型。 2.1概念 面向对象的程序设计中有两个重要概念:类和对象。其中类是某一类对象的抽象。对象才是一个具体的实体。如:有一条狗叫”花花”,那么这条真实存在的狗才是对象,而”狗”是类,代表一类”花花”这样的实体。 抽象的重要性 抽象是继承和多态的基础。在抽象的过程中,我们获得是事物本质的东西和事物独特的东西,这样我们很自然的认识到抽象的事物和具体的事物之间是一种继承的关系,而他们之间的不同性可以通过多态来表现出来。 2.2定义类 2.2.1语法格式 [权限控制符] class 类名 { //零个到多个构造器 * 构造器定义 * 注意:构造器无返回值类型 [权限控制符] 类名(参数列表){}; //零个到多个属性 * 属性定义 [权限控制符] [static | final] 属性类型

phpcms中的RBAC权限系统

一世执手 提交于 2019-12-02 08:53:32
原文链接: https://www.cnblogs.com/duanbiaowu/p/5089243.html PHPCMS中的RBAC权限系统主要用到了4张数据表:管理员表,角色表,菜单表,菜单权限表。先来看看数据库的数据表结构: admin 管理员表 ID 字段 类型 Null 默认 索引 额外 注释 1 userid mediumint(6) unsigned PK auto_increment 用户id 2 username varchar(20) YES INDEX 用户名 3 password varchar(32) YES 密码 4 roleid smallint(5) YES 0 角色 5 encrypt varchar(6) YES 加密因子 6 lastloginip varchar(15) YES 最后登录ip 7 lastlogintime int(10) unsigned YES 0 最后登录时间 8 email varchar(40) YES Email 9 realname varchar(50) NO 真实姓名 10 card varchar(255) NO 密保卡 admin_role 角色表 ID 字段 类型 Null 默认 索引 额外 注释 1 roleid tinyint(3) unsigned PK auto_increment 角色id

javase 第十三讲 继承

北城余情 提交于 2019-12-02 08:44:10
第十三讲 继承 1.当生成子类对象时 java默认会调用父类的构造函数 生成父类对象 然后调用子类构造函数,生成子类对象 [要想生成子类对象,首先需要生成父类对象 比如,没有父亲就没有孩子] 2.关于继承的3点 ①:父类有的,子类也有(属性) ②:父类没有的,子类可以增加 ③:父类有的,子类可以改变 3.继承的注意点 ①:构造方法不能被继承 ②:方法和属性可以被继承 ③:子类的构造方法隐式的调用了父类不带参数的构造方法(1内所说) ④:当父类没有不带参数的构造方法时,子类需要用super来调用父类的构造方法 super需要写在构造方法的第一行 来源: https://blog.csdn.net/benjamin8701/article/details/102744823

面向对象(三)

六眼飞鱼酱① 提交于 2019-12-02 08:42:21
多态 多态就是某一个事物,在不同时刻表现出来的不同状态。 前提是要有继承关系,方法重写,没有也可以,但是就没有意义了。 举例: Aniaml a = new Cat ( ) ; 猫可以是猫类型,同时猫也是动物的一种,也可以把猫称为动物。 其实就是父类引用指向子类对象。 父 f = new 子(); 多态中的成员访问特点 成员变量:编译看左边,运行看左边。 构造方法:创建子类对象的时候,会访问父类的构造方法,对父类的数据进行初始化。 成员方法:编译看左边,执行看右边。(当没有重写时,去父类找) 静态方法:编译看左边,运行看左边。(静态和类相关,算不上重写,所以,访问还是左边的) 案例演示 class Fu { int n = 10 ; Fu ( ) { System . out . println ( "父类构造方法" ) ; } public void show ( ) { System . out . println ( "Fu show" ) ; } public static void set ( ) { System . out . println ( "静态方法" ) ; } } class Zi extends Fu { int n = 20 ; Zi ( ) { System . out . println ( "子类构造方法" ) ; } @Override

10、接口

假如想象 提交于 2019-12-02 07:59:23
接口 一、接口的概念 接口是一种能力,接口是一种约定,接口是一种规范,接口是一种标准。 二、接口的语法 1. 接口相当于特殊的抽象类,定义方式,组成部分都和抽象类类似。 2. 定义语法: interface 接口名{} 3. 特点 a) 接口中所有的方法都是公开抽象方法 默认为public abstract 修饰 b) 接口中所有的属性都是公开静态常量 默认为public static final修饰 c) 接口中没有构造方法,动态|静态代码块 4.接口和抽象类的异同点 a) 相同点 1. 都能编译生成 .class 文件 2. 都不能new对象 抽象类:不够完整 不够具体 在现实生活中不存在,所以不能new对象 接口:不够具体 不够完整 没有构造方法 3. 都可以声明引用 b) 不同点 1. 接口中所有的属性都是公开静态常量,默认为public static final 修饰 抽象类没有具体要求 2. 接口中所有的方法都是公开抽象方法,默认为public abstract修饰 抽象类没有具体要求 3. 接口中不能定义构造方法,动态|静态代码块 抽象类可以定义 4. 接口是多继承 ,抽象类是单继承 ​ 详见代码TestInterface.java 三、接口的应用 父类中只能提供共性的属性和方法,没有办法提供子类中独有的属性和方法,子类只能在类中自己提供,比较麻烦

抽象类

不问归期 提交于 2019-12-02 07:13:35
1.先定义一个 AbstractPerson 抽象类                     public abstract class AbstractDad { private int cnt; public abstract void show(); // 自定义抽象方法 public void print() { // 普通方法 System.out.println("我是AbstractPerson抽象类中自定义的普通方法"); } public AbstractDad() { // 无参构造 super(); } public AbstractDad(int cnt) { // 有参构造 super(); setCnt(cnt); } public int getCnt() { return cnt; } public void setCnt(int cnt) { this.cnt = cnt; } } 2.测试类: package com.monkey1026; public class Test { public static void main(String[] args) { //AbstractDad ap = new AbstractDad (66); //编译报错:抽象类不能实例化对象 } } 归纳: 观察代码可知: 抽象类的定义:class前 加

对象创建的过程(重点理解)

▼魔方 西西 提交于 2019-12-02 06:18:50
1.思考下列代码的执行过程: public class TestSingleObject { private int cnt = 1; //成员变量 //构造块 { cnt = 2; } // 构造方法 public TestSingleObject() { cnt = 3; } public static void main(String[] args) { TestSingleObject tso = new TestSingleObject(); System.out.println("tso.cnt = "+tso.cnt); } } 打印结果是: 3 执行过程: - main()方法是程序的入口,进行类的加载 - new TestSingObject(); 先对实例变量根据数据类型进行默认初始化赋值 --- int cnt =0; 然后执行 private int cnt = 1; ---- cnt = 1; 然后执行 构造块 {cnt=2;} ----cnt = 2; 最后执行 构造方法 -----cnt =3; -执行system...("cnt") ------打印出结果到控制台: tso.cnt = 3 重点: 构造块{ } 的执行顺序优于 构造方法 2.在理解以上内容的基础上,加入 static静态相关的代码看看: public class Dad {

Java 易忘知识点

那年仲夏 提交于 2019-12-02 05:55:29
1、形式参数问题 基本类型作为形式参数:形式参数的改变不影响实际参数 引用类型作为形式参数:形式参数的改变直接影响实际参数 具体分析参考博 博客 2、构造方法注意事项 如果你不提供构造方法,系统会给出默认构造方法 如果你提供了构造方法,系统将不再提供 构造方法也是可以重载的 3、static关键字注意事项 在静态方法中是没有this关键字的 静态方法只能访问静态的成员变量和静态的成员方法 来源: https://blog.csdn.net/qq_35988274/article/details/102724676

public abstract啥时候可以省略?

£可爱£侵袭症+ 提交于 2019-12-02 05:47:32
父类是抽象类,其中有抽象方法,那么子类继承父类,并把父类中的所有方法都实现覆盖了,子类才有创建对象实例的能力,否则子类也必须是抽象类.抽象类中可以有构造方法,是子类在构造子类对象时需要调用父类(抽象类)的构造方法. =========================================================================== 举一个简单的例子: abstract class E{   public abstract void showViewer(); //public abstract 可以省略 } 然后其他类如果继承它通常为了实现它里面的方法 class F extends E{   void showViewer();//写具体实现代码 } 来源: https://www.cnblogs.com/curedfisher/p/11732719.html