Tag笔记

JAVA从入门到放弃(6)多态

上一篇笔记中介绍了复用类,而这一篇笔记中想介绍一下多态。 在讨论多态之前,我们需要重新讨论一下向上转型这个问题。在之前的向上转型当中存在一个问题就是:我们为什么要故意忘记变量的类型。JAVA明明是一种强类型语言,但是在向上转型的过程中我们却故意忘记变量的类型。首先先来看一段代码 Java enum Note{ MIDDLE_C,C_SHARP,B_FLAT; } public class Text { public static void tune(InstrumentC i){ i.play(Note.MIDDLE_C); } public static void main(String[] Args){ WindC flute = new WindC(); tune(flute); } } class InstrumentC{ public void play(Note n){...

JAVA从入门到放弃(5)复用类

这篇笔记中我想简述一下JAVA的众多引人注目的功能之一:复用。真正的复用不仅要做到能够复制代码并对之加以改变,还应该做到更多。 复用的方法包括:组合、继承、代理。下面我们首先简述一下组合 所谓的组合就是在新的类中产生现有类的对象。因为新产生的类是由现有类和对象组成的,所以这种方法称为组合。下面的例子给出了组合的用法 class WaterSource{ private String s; WaterSource(){ System.out.println("WaterSource()"); s = "Constructed"; } public String toString(){return s;} } public class SprinklerSystem { private String value1,value2,value3,value4; private...

JAVA从入门到放弃(4)访问控制权限

所谓的访问权限控制说的简单一些就是那些可以访问那些不可以被访问,我们可以通过权限控制的修饰词来标明权限 从小到大一次是:private -> protected  -> public。不过仅有上面的一些关键字还不足以解决一个问题,就是如何将构件捆绑到一个内聚的类库单元,这个时候我们就需要引入package(包访问权限)加以控制 前面给出的示例中存在import语句,这里的improt引入的就是package,当我们组织代码的时候就要创建自己的package,使用方法如下 package access; 1 package access; 不过package这个语句需要在整个java文件的最开头,也就是第一句非注释性代码。你可能会问前面是用的import和package到底有什么作用,这里使用这两个关键字所允许的就是将单一的命名空间分隔开。...

机器学习笔记(8)逻辑回归模型

/*本课程笔记依托于Machine Learning——Andrew Ng(Stanford University)*/ 同样在这篇笔记中,我们一样会谈到代价函数和梯度下降方法,不过之前提到的代价函数和梯度下降法适用于线性回归的问题,而在这里我们提到的代价函数和梯度下降是适用于分类方法的 首先我们来看一下代价函数 和之前代价函数的作用相同,这里的代价函数同样是来验证假设函数是否符合预期,也就是拟合参数的优化目标...

机器学习笔记(7)分类和表观

/*本课程笔记依托于Machine Learning——Andrew Ng(Stanford University)*/ 在这一篇笔记中我想和大家探讨一下分类问题,前面的回归是倾向于求出real value,而这里的分类更加倾向于按照学习样本对未知数据进行分类,首先我们需要简述一下分类和回归在实际问题的中会有什么不同的表现 在这里我们引用一个判断肿瘤细胞是否为恶性肿瘤,0为否,1为是,上面是训练数据,如果我们使用线性回归来对数据进行拟合,当数据为原始的8个点时,拟合的结果为粉色直线,假设我们规定当可能性>0.5时就认为细胞为肿瘤细胞,<0.5则为正常细胞。通过拟合出的粉色直线可以看出好像还能完全符合,但是这里会带来一个问题,分类问题是要将结果指定在0...

机器学习笔记(6)MATLAB/Octave基础

/*本课程笔记依托于Machine Learning——Andrew Ng(Stanford University)*/ 通过前面几篇笔记的记录,我们对机器学习中线性回归方法的一些基本算法有了一些新的了解,但是机器学习毕竟属于计算机领域,是要实际应用的。我们可以选择使用常见的高级语言C/C++ JAVA...

JAVA从入门到放弃(3)类的初始化与清理

前面两篇笔记记录的比较草率,因为C语言的功底已经很扎实了,如果不扎实的童鞋可以深入了解一下JAVA的前面的基础知识,这里我们就要开始讨论面向对象的高级特性了,首先要讨论一下类的初始化与清理 向较于JAVA,C语言有一个很致命的问题,就是C语言并不会自动初始化你定义的变量,这样就会造成程序不安全,因此在C++中引入了构造器,这样在新建对象的时候会自动调用构造器对特定的内容进行初始化,但是C++还提供了一个垃圾回收器(析构函数),但是JAVA则免去了析构函数,因为JAVA的内存管理是由JVM自动管理的所以并没有析构函数 那么接下来我们要使用构造器来保证特定项目被初始化了,首先第一个问题就是怎么定义一个构造器 class Rock{ Rock(){ System.out.println("Rock "); } } 12345 class...

JAVA从入门到放弃(2)从面向过程转到面向对象

其实题目并没有什么卵用,这篇笔记中我想总结一下JAVA的非面向对象部分的内容,前面那篇笔记大体上说明了JAVA与C语言在整体上的不同,这里将讨论上篇中忽略的细节问题 首先还是要说一下JAVA的操作符,JAVA操作符分为一元运算符,二元运算符,三元运算符,这和大多数编程语言类似。操作符作用于操作数使其生成一个新的值,但有些操作符可能会改变操作数本身,这样的影响被称之为副作用,我们有的时候需要利用操作符生成新的值,而有的时候则要利用操作符的副作用 先来列举一下JAVA的运算符(+ – * / = ++ — > < >= <= && || ! ?: == != += -= *= /=)这些用法都和C类似就不罗嗦了,其中+既可以用来做数字的加法,也可以用来连接两个字符串...

JAVA从入门到放弃(1)JAVA那些不同于C的地方

讲真啊,虽然我开了学习笔记板块,但是我很拒绝写java笔记,题目你们也看到了,从入门到放弃,东西太特喵的多了,不记笔记根本记不住啊喂 咳咳咳,既然作为整个笔记的开头部分,自然是要写一些入门一点的东西啦,因为JAVA是一门面向对象的编程语言,和C语言的区别自然是不在少数(不知道从哪里开始写),首先从输入输出开始吧 Java Scanner str = new Scanner(System.in); int a = str.nextInt();//str打开的是输入流,需要有一个变量来获取流中的数据(不知道这么说对不对) System.out.println(a); 123 Scanner str = new Scanner(System.in);int a = str.nextInt();//str打开的是输入流,需要有一个变量来获取流中的数据(不知道这么说对不对)System.out...

MySQL学习笔记(2)约束以及修改数据表

/*本笔记依托于与MySQL的零距离接触(慕课网)*/ 按照标题的顺序,我想首先记录一下约束的相关知识。为什么需要约束:约束是为了保证数据的完整性和一致性。同时根据约束针对的字段多少将约束分为表级约束和列级约束。如果约束只对一个字段起作用,那么就称这样的约束是列级约束。如果约束对于两个或两个以上字段起作用,这样的约束就称之为表级约束。说到这里估计都糊涂了,到底什么是约束,如果我说出来约束在功能上的划分你们就明白了。约束在功能上划分为:NOT NULL(非空约束)、PRIMARY KEY(主键约束)、UNIQUE KEY(唯一约束)、DEFAULT(默认约束)、FOREIGN KEY(外键约束),这样就熟悉了很多,因为前面四种在上一篇笔记中已经提到并且使用过了,这次主要讨论的就是FOREIGN KEY。 FOREIGN...

Your sidebar area is currently empty. Hurry up and add some widgets.