黑马程序员

黑马程序员.bobo.DAY.6

人盡茶涼 提交于 2020-03-02 07:44:25
Day-6 1.面向对象 (static 关键字 ) /* 静态:static 用法:是一个修饰符,用于修饰成员(成员变量,成员函数), 当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,可以直接被类名调用,类名.静态成员 static 特点: 1,随着类的加载而加载. 也就是说:静态会随着类的消失而消失,说明它的生命周期最长. 2,优先于的对象存在 明确一点:静态是先存在.对象是后存在的. 3,被所有对象所共享 4,可以直接被类名所调用. 实例变量和类变量的区别: 1,存放位置. 实例类变量随着类的加载而加载而存在于方法区中.随着类消失而消 实例变量随着对象的建立而存在于堆内存中. 2,生命周期: 类变量生命周期最长,随着类的消失而消失. 实例变量生命周期随着对象的消失而消失. 3,主函数是静态的. 静态使用注意事项: 1,静态方法只能访问静态成员. 非静态方法既可以访问静态也可以访问非静态. 2,静态方法中不可以定义this,super关键字. 因为静态又相遇对象存在.所以静态方法中不可以出现this. 静态有有利有弊 利处:对对象共享数据进行单独空间的存储,节省空间.没有必要每一个对象中都存储一份. 可以直接被类名调用. 弊端:生命周期过长. 访问出现局限性.(静态虽好,只能访问静态.) */ class Person { String name;//成员变量

黑马程序员——银行业务调度系统

早过忘川 提交于 2020-02-27 09:34:54
--------------------- android培训 、 java培训 、期待与您交流! ---------------------- 银行业务调度系统 需求分析 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。 Ø 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。 Ø 异步随机生成各种类型的客户,生成各类型用户的概率比例为: VIP客户 :普通客户 :快速客户 = 1 :6 :3。 Ø 客户办理业务所需时间有最大值和最小值,在该范围内随机设定每个VIP客户以及普通客户办理业务所需的时间,快速客户办理业务所需时间为最小值(提示:办理业务的过程可通过线程Sleep的方式模拟)。 Ø 各类型客户在其对应窗口按顺序依次办理业务。 Ø 当VIP(6号)窗口和快速业务(5号)窗口没有客户等待办理业务的时候,这两个窗口可以处理普通客户的业务,而一旦有对应的客户等待办理业务的时候,则优先处理对应客户的业务。 Ø 随机生成客户时间间隔以及业务办理时间最大值和最小值自定,可以设置。 Ø 不要求实现GUI,只考虑系统逻辑实现,可通过Log方式展现程序运行结果。 a、饿汉式单例类 package pattern.singleton; //饿汉式单例类.在类初始化时,已经自行实例化 public class

黑马程序员 银行调度系统

与世无争的帅哥 提交于 2020-02-27 09:33:54
---------------------- android培训 、 java培训 、期待与您交流! ---------------------- 这个项目我起先是想到将人设计为一个类,怎么想也想不通,后来看了老师的视频之后,对面向对象有了深的一层的理解。再次要结合现实生活,生活中我们去银行办理业务都需要先进行排号。因此号码成了识别每个顾客的唯一标识。号码这里包括两个:第一是顾客进入银行排的号,第二是窗口服务号码。这两个必须建立联系因此定一个号码管理机器的类 号码管理类:一个很好的list集合应用例子 1 public class NumberManager { 2 private int lastNumber = 0; 3 private List queueNumbers = new ArrayList(); 4 //编号 5 public synchronized Integer generateNewNumber(){ 6 queueNumbers.add(++lastNumber); 7 return lastNumber; 8 } 9 //服务窗口取号的方法! 10 public synchronized Integer fetchNumber(){ 11 if(queueNumbers.size()>0){ 12 return (Integer

黑马程序员 java基础之多线程

∥☆過路亽.° 提交于 2020-02-20 09:59:14
/* 多线程技术 java虚拟机允许程序并发地运行多个线程。 JVM启动至少有两个线程,一个是主线程(代码在mian方法中);另一个是负责垃圾回收机制的线程。 创建线程 方法一 在java.lang包中有一个Thread类 继承Thread类 步骤: 1,定义类继承Thread. 2,复写Threa类中的run方法; 目的:将自定义代码存储在run方法中,让线程运行。 3,调用start(),该方法有两个作用,就是启动线程,调用run方法。 */ // 例:三个窗口分别买票,每一个窗口卖10张票 class ThreadDemo extends Thread //定义类继承Thread. { public void run() //复习run方法 { int x=1; while(x<=10) { System.out.println(Thread.currentThread().getName()+"....."+x);//打印正在运行的线程 x++; } } } class Test { public static void main(String[] String) { new ThreadDemo().start();//创建第一个线程并运行 new ThreadDemo().start();//创建第二个线程并运行 new ThreadDemo().start();/

黑马程序员—16-oc核心语法

巧了我就是萌 提交于 2020-02-19 16:51:45
------- android培训 、java培训 、期待与您交流! ---------- 一、 变量作用域 l 变量的作用域主要分为四种: u (1)@public (公开的)在有对象的前提下,任何地方都可以直接访问。 u (2)@protected (受保护的)只能在当前类和子类的对象方法中访问 u (3)@private (私有的)只能在当前类的对象方法中才能直接访问 u (4)@package (框架级别的)作用域介于私有和公开之间,只要处于同一个框架中就可以直接通过变量名访问 l 使用注意和补充 u (1)在类的实现即.m文件中也可以声明成员变量,但是因为在其他文件中通常都只是包含头文件而不会包含实现文件,所以在这里声明的成员变量是@private的。在.m中定义的成员变量不能喝它的头文件.h中的成员变量同名,在这期间使用@public等关键字也是徒劳的。 u (2)在@interface @end之间声明的成员变量如果不做特别的说明,那么其默认是protected的。 u (3)一个类继承了另一个类,那么就拥有了父类的所有成员变量和方法,注意所有的成员变量它都拥有,只是有的它不能直接访问。 二、@property@synthesize l 让编译好器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。 1)声明property的语法为:@property (参数1

黑马程序员--继承

江枫思渺然 提交于 2020-02-11 12:11:22
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! --------------------- 继承是面向对象的核心特征之一。继承是已有类创建新类的机制。利用继承机制,可以先创建一个具有共性的一般类(父类),根据该一般类再创建具有特殊性的新类(子类),新类继承一般类的状态和行为,并根据需要增加它自己的新状态和行为。 在 java 语言中, java 只支持单继承,但是支持多层继承。通过继承,子类拥有父类的所有成员(成员变量和成员方法),子类不仅可以定义新的成员变量和成员方法,还可以对父类中的成员变量和方法进行更改,使累的功能得到扩展你,提高了代码的复用性。 类的继承原则: ( 1 )类与类之间必须存在所属关系。 ( 2 )子类不能继承父类的构造方法。因为父类的构造方法用来创建父类对象,子类需要定义自己的构造方法,用来创建自己的对象。 到底如何才能使用继承体系中的功能呢?先要查阅该体系中父类的描述,因为父类中定义的是该体系中的共性功能,通过了解共性功能,就可以知道该体系的基本功能。在具体调用时,要创建子类的对象

黑马程序员 内部类 Java

最后都变了- 提交于 2020-02-11 11:56:24
 ------- android培训 、 java培训 、期待与您交流! ---------- 内部类:将一个类定义在另一个类里面,对里面那个类就叫做内部类(内置类,嵌套类)。 访问特点:内部类可以直接访问外部类中的成员,包括私有成员。而外部类要访问内部类中的成员必须要建立内部类的对象。 class Outer{ private int x=3; class Inner{ void function(){ function1(); System.out.println("内部类"+x); } } void function1(){ System.out.println("外部类"+x); } } public class innerclass { public static void main (String [] args ){ Outer outer =new Outer(); //outer.function();// 禁止直接访问内部类 outer.function1();// 外部类只能访问自己的成员方法 Outer.Inner inner =new Outer().new Inner ();// 需要指定内部类到底是谁的内部类才能建立内部类的对象 inner.function(); } } 之所以可以直接访问外部类中的成员,都是因为内部类中持有了一个外部类的引用,格式

黑马程序员-Java面向对象

拥有回忆 提交于 2020-02-11 11:53:45
1. 什么是面向对象? 将功能封装进对象,强调具备了功能的对象。 特点 : 将复杂的事情简单化, 面向对象将以前的过程中的执行者,变成了指挥者。 2. 类和对象的关系 类是具体事物的抽象,概念上的定义;对象即是该类事物实实在在存在的个体。 Java中用类描述事物就是描述事物的 属性 和 行为 。 成员变量和局部变量的区别? |-- 成员变量 : 定义在类中,整个类中都可以被访问; 随着对象的建立而建立,存在于对象所在的堆内存中; 有默认初始化值。 |-- 局部变量 : 只定义在局部范围内; 存在于栈内存中,作用的范围结束,变量空间会自动释放; 局部变量没有默认初始化值。 匿名对象 :当对对象方法仅进行一次调用时;匿名对象可以作为实际参数进行传递。 3. 面向对象的特征 |--封装: 隐藏对象的属性和实现细节,仅对外提供公共访问方式。 好处 :将变化隔离;便于使用;提高重用性;提高安全性。 构造函数 特点 :函数名与类名相同 不用定义返回值类型 不可以写return语句 作用 : 给对象初始化 |--继承:共性抽取。多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,提高代码复用性。 好处:提高了代码的复用性;让类与类之间产生了关系,多态的前提。 特点:Java只支持单继承,但是支持多层继承(继承体系) |--抽象类 特点 :1. 抽象方法只能定义在抽象类中

黑马程序员-JAVA基础-IO流之File 类

倖福魔咒の 提交于 2020-02-10 07:51:09
------- android培训 、 java培训 、期待与您交流!------- 一.File 类简介:   File 类是java.io 包下代表与平台无关的文件和目录,也就是说希望在程序中操作 文件和目录 都可以通过File 类来完成。但是File 不能访问文件内容本身,如果需要访问文件内容本身,则需要使用 输入\输出流。   作用:    1、用来将文件或者文件夹封装成对象。    2、方便对文件与文件夹进行操作。    3、File 对象可以作为参数传递给流的构造函数。 二.File 类常见方法:    1、创建:   > boolean createNewFile() : 在指定位置创建文件,如果文件已经存在,则不创建,返回false和输出流不一样,输出流对象一创建文件,而且文件已经存在,会覆盖原来的文件。   > boolean mkdir() : 创建此抽象路径名指定的目录,如果成功则返回true。 只能创建一级目录。   > boolean mkdirs() : 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录,如果成功则返回true。 创建多级文件 。 1 import java.io.*; 2 public class FileDemo { 3 public static void main(String[] args) throws

黑马程序员-java基础

半世苍凉 提交于 2020-02-07 23:40:54
---------------------- ASP.Net+Unity开发 、 .Net培训 、期待与您交流! ---------------------- 面向对象的程序设计 面向过程的程序设计方法从解决问题的每一个步骤入手,适合于解决比较小的简单问题。 面向对象的程序设计方法则按照现实世界的特点来管理复 ?的事物,把它们抽象为对 象,具有自己的状态和行为,通过对消息的反应来完成一定的任务。 特点:1:将复杂的事情简单化。 2:面向对象将以前的过程中的执行者,变成了指挥者。 3:面向对象这种思想是符合现在人们思考习惯的一种思想。 过程和对象在我们的程序中是如何体现的呢?过程其实就是函数;对象是将函数等一些内容进行了封装。 匿名对象使用场景: 1:当对方法只进行一次调用的时候,可以使用匿名对象。 2:当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。 在类中定义其实都称之为成员。成员有两种: 1:成员变量:其实对应的就是事物的属性。 2:成员函数:其实对应的就是事物的行为。 所以,其实定义类,就是在定义成员变量和成员函数。但是在定义前,必须先要对事物进行属性和行为的分析,才可以用代码来体现。 private int age;//私有的访问权限最低,只有在本类中的访问有效。 总结:开发时,记住,属性是用于存储数据的,直接被访问,容易出现安全隐患,所以