需求:客户端向服务器发送数据,服务器端收到数据后向客户端返回数据: 还是使用两台电脑,一台客户端,一台服务器. 客户端代码: import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class ClientDemo { public static void main(String[] args) throws IOExce…
这里要封装通道流,封装键盘录入数据流. 同样地,还是两台电脑.一个客户端,一个服务器. 客户端代码: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; /* * 客户端键盘录入,服务器…
tcp协议相对于udp更加安全. 首先看一下需求:服务器端开启,多个客户端同时向服务器发送数据,看哪个客户端先到达. 说明:这里我开启三个电脑实验,一台电脑写服务器端的程序,两台电脑开客户端的程序.服务器先开启程序,客户端同时开启发送数据. 客户端的程序: import java.io.IOException; import java.io.OutputStream; import java.net.Socket; /* * TCP协议发送数据: * A:创建发送端的Socket对象 * 这一步…
需求,一台电脑发送数据,其他电脑都可以收到该数据.使用广播地址. 发送端: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.InterfaceA…
首先看一下UDP协议的图解: 可以看到,分为发送端和接收端程序. 直接上代码: 发送端程序: import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /* * UDP协议发送数据: (底层是IO) * A:创建发送端Socket对象 * B:创建数据,并把数据打包 * C:调用Socket对象的发送方法发送数据包…
笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季> W* @website http://www.imooc.com/view/85 */ 第0章:个人收获与体会 经验总结: - 多练 - 多问 - 自己动手调试错误 - 复习和总结(笔记和犯过的错误) - 学虽容易,学好不易,且学且珍惜 学习这门课程后: 对于有了C++基础的人来说,学习这门课程绝对…
找工作告一段落. 最后的工作呢,和java紧密相关,也是阴差阳错,不过都是软件开发,都好了,不过以后侧重点肯定是在java这边,php有机会还是一直学下去的,那么美的说~ Java开发第一季  一.简介 1.1 Java SE——基础核心: 以此为基础,又分为Java EE(企业应用开发,JSP等),Java ME(嵌入式开发,安卓等): JVM(Java Virtual Machine): Java虚拟机,使Java代码可以跨平台运行: .java——>编译器——>.class——>解…
接下来介绍java第三大特性--多态性 /* 多态:同一个对象(事物),在不同时刻体现出来的不同状态. 举例: 猫是猫,猫是动物. 水(液体,固体,气态). 多态的前提: A:要有继承关系. B:要有方法重写. 其实没有也是可以的,但是如果没有这个就没有意义. 动物 d = new 猫(); d.show(); 动物 d = new 狗(); d.show(); C:要有父类引用指向子类对象. 父 f = new 子(); 用代码体现一下多态. 多态中的成员访问特点: A:成员变量 编译看左边,…
接下来经过一个例子,对多态问题加深印象: 猫狗案例. /* 多态练习:猫狗案例 */ class Animal { public void eat(){ System.out.println("吃饭"); } } class Dog extends Animal { public void eat() { System.out.println("狗吃肉"); } public void lookDoor() { System.out.println("狗看…
上一篇博客(http://blog.csdn.net/qq_32059827/article/details/51328638)最后对多态的弊端做了显示,这里解决这个弊端.如下: /* 多态的弊端: 不能使用子类的特有功能. 我就想使用子类的特有功能?行不行? 行. 怎么用呢? A:创建子类对象调用方法即可.(可以,但是很多时候不合理.而且,太占内存了) B:把父类的引用强制转换为子类的引用.(向下转型) 对象间的转型问题: 向上转型: Fu f = new Zi(); 向下转型:(容易出现问题…
软件中有接口,这里的接口与硬件中的接口还是有很大区别的. 这里介绍接口不考虑JDK8的新特性(JDK8开始接口里面可以有非抽象方法了,介绍JDK8新特性可能要到整个第一季写完吧!) 还是直接进入接口的学习: /* 接口的特点: A:接口用关键字interface表示 interface 接口名 {} B:类(实现)接口用implements(执行,实现)表示 class 类名 implements 接口名 {} C:接口不能实例化,就是说不能凭空的创建对象 那么,接口如何实例化呢? 按照多态的方…
java特性封装.继承.多态.之前对封装做了简单描述(见http://blog.csdn.net/qq_32059827/article/details/51312116),今天分析另一个特性继承性: 首先这一片只是对继承概念做一个分析,具体的d代码描述在下一篇开始更新. 首先我来写两个代码: //定义学生类 class Student { String name; int age; public Student(){} //getXxx()/setXxx() public void eat()…
慕课网:http://www.imooc.com/learn/85 Java入门知识第一季 1.Java开发环境和IDE的使用: 2.变量和常量 3.常用的运算符 4.流程控制语句 5.数组:使用Arrays操作数组.foreach循环遍历数组 6.方法的定义,重载调用 跟着慕课网的教程,去一步一步补充完成小练习中的代码,学习效率会比较高~…
根据排序算法,可以解决一些小案例.举例如下: /* * 把字符串中的字符进行排序. * 举例:"dacgebf" * 结果:"abcdefg" * * 分析: * A:定义一个字符串 * B:把字符串转换为字符数组 * C:把字符数组进行排序 * D:把排序后的字符数组转成字符串 * E:输出最后的字符串 */ public class ArrayTest { public static void main(String[] args) { // 定义一个字符串 S…
首先用一个例子引入泛型类. 我定义一个Object类: package cn.it_03; public class ObjectTool { private Object obj; public Object getObj() { return obj;//obj = new Integer(30); obj = new String("林青霞"): } public void setObj(Object obj) { // Object obj = new Integer(30);…
案例一: /* * 需求:把数组中的数据按照指定个格式拼接成一个字符串 * 举例: * int[] arr = {1,2,3}; * 输出结果: * "[1, 2, 3]" * 分析: * A:定义一个字符串对象,只不过内容为空 * B:先把字符串拼接一个"[" * C:遍历int数组,得到每一个元素 * D:先判断该元素是否为最后一个 * 是:就直接拼接元素和"]" * 不是:就拼接元素和逗号以及空格 * E:输出拼接后的字符串 */ publ…
/* 看程序写结果:先判断有没有问题,如果没有,写出结果 */ class A { public void show() { show2(); } public void show2() { System.out.println("我"); } } class B extends A { /*public void show() {//注意这里继承过来的方法 show2(); }*/ public void show2() { System.out.println("爱&qu…
之前的代码描述都是基于面向过程的,今天开始正式进入面向对象的世界.什么是对象?首先要区分类和对象的概念-- 现实世界中是如何描述一个事物的? 举例:学生 姓名,年龄,性别... 学习,吃饭,睡觉 属性:该事物的描述信息 行为:该事物能够做什么 学习编程语言,是为了模拟现实世界的事物的. 而学习的编程语言Java中最基本的单位是:类. 所以,我们就应该把事物通过类来体现出来: 由此,我们就得到了现实世界事物和类的对应关系: 事物: 类: 属性 成员变量 行为 成员方法 类:是一组相关的属性和行为的…
由于eclipse等ide的强大功能,使得建包,导包用一些快捷键就能完成.这里对包的概念做稍微的叙述,了解即可: 分包后使得项目更加清晰,提高代码维护性. 包:         A:其实就是文件夹         B:作用             a:把相同的类名放到不同的包中             b:对类进行分类管理                  举例:         学生:增加,删除,修改,查询         老师:增加,删除,修改,查询         ...         …
通过案例的形式,结束接口部分. /* 猫狗案例,加入跳高的额外功能 分析:从具体到抽象 猫: 姓名,年龄 吃饭,睡觉 狗: 姓名,年龄 吃饭,睡觉 由于有共性功能,所以,我们抽取出一个父类: 动物: 姓名,年龄 吃饭();//吃的不一样,定义为抽象方法 睡觉(){} 猫:继承自动物 狗:继承自动物 跳高的额外功能是一个新的扩展功能,所以我们要定义一个接口 接口: 跳高 部分猫:实现跳高 部分狗:实现跳高 实现: 从抽象到具体,这个具体意思是实现后都是具体内容 使用: 使用具体类 */ //定义跳…
此文章来自于书籍,里面介绍了this和super详细的区别.当然在后边的文章中还有涉及super的时候还会分析. Java关键字this.super使用总结 一.this Java关键字this只能用于方法方法体内.当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this.因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在"Java关键字static.final使用总结"一文中给出了明确解释.…
通过几个小案例理重新回顾一下前面所写的内容,对面向对象的理解更加深刻的目的: 案例一: /* 需求: 定义一个员工类,自己分析出几个成员, 然后给出成员变量,构造方法,getXxx()/setXxx()方法, 以及一个显示所有成员信息的方法.并测试. 分析: 员工 成员变量: 员工编号,姓名,年龄 构造方法: 无参构造方法 成员方法: getXxx()/setXxx() show(); */ class Employee { //员工编号 private String employeeId; /…
很感谢在内部类章节,"开心阳"先生给与的建议.使用静态内部类.这里就简单说一下静态内部类的使用. package com.devin; public class MyMain{ private static String name = "woobo"; private String num = "X001"; // 静态内部类可以用public,protected,private修饰 static class Person { // 静态内部类中…
1.认识匿名内部类 /* 匿名内部类 就是内部类的简化写法. 前提:存在一个类或者接口 这里的类可以是具体类也可以是抽象类. 匿名内部类的格式: new 类名或者接口名(){ 重写方法; }:这代表的是一个子类对象 本质是什么呢? 是一个继承了该类或者实现了该接口的子类匿名对象. */ interface Inter { public abstract void show(); public abstract void show2(); } class Outer { public void m…
/* 内部类概述: 把类定义在其他类的内部,这个类就被称为内部类. 举例:在类A中定义了一个类B,类B就是内部类. 内部的访问特点: A:内部类可以直接访问外部类的成员,包括私有. B:外部类要访问内部类的成员,必须创建对象. 内部类位置         成员位置:在成员位置定义的类,被称为成员内部类.             局部位置:在局部位置定义的类,被称为局部内部类.  */ 1.成员内部类: /* 成员内部类: 如何直接访问内部类的成员. 外部类名.内部类名 对象名 = 外部类对象.内…
/*     形式参数:         引用类型 接口:需要的是该接口的实现类对象 这个时候就没什么了,和抽象类的解释差不多. */ interface Love { public abstract void love(); } class LoveDemo { public void method(Love l) { l.love();//如果看到一个方法内的引用类型是接口类型,这里传递的应该是该接口的实现类类对象. } } //定义具体类实现接口,该接口的实现类 class Teacher…
首先,(1)叙述接口的成员特点: /* 接口成员特点 成员变量:只能是常量,默认都是常量,并且是静态的. 默认修饰符:public static final 建议:自己手动给出类似:public static final int num3 = 30;的格式 构造方法:接口没有构造方法. 成员方法:默认只能是抽象方法. 默认修饰符:public abstract 建议:自己手动给出. 用几行代码验证上述特点. */ interface Inter { public int num = 10; pu…
上一篇(http://blog.csdn.net/qq_32059827/article/details/51334198)对抽象类做了一些描述,这一篇根据两个案例加深一下印象.会觉得抽象类其实不抽象: 案例一:猫狗案例. /* 猫狗案例 具体事物:猫,狗 共性:姓名,年龄,吃饭 分析:从具体到抽象 猫: 成员变量:姓名,年龄 构造方法:无参,带参 成员方法:吃饭(猫吃鱼) 狗: 成员变量:姓名,年龄 构造方法:无参,带参 成员方法:吃饭(狗吃肉) 因为有共性的内容,所以就提取了一个父类.动物.…
/* 抽象类的概述: 动物不应该定义为具体的东西,而且动物中的吃,睡等也不应该是具体的. 我们把一个不是具体的功能称为抽象的功能,而一个类中如果有抽象的功能,该类必须被称为是抽象类. 抽象类的特点: A:抽象类和抽象方法必须用abstract关键字修饰 B:抽象类中(不一定)有抽象方法,可以有具体的.但是有抽象方法的类必须定义为抽象类 C:抽象类不能实例化//Animal a = new Animal();无法实例化就是指:这个语句是没法执行的,抽象的不是具体无法创建该抽象类对象 因为它不是具体…
/* final可以修饰类,方法,变量 特点: final(可以修饰类),该(类)(不能被继承).一旦修饰了一个类,这个类就不能被继承了! final以修饰方法,该方法可以被继承但是不能被重写.(覆盖,复写) final可以修饰变量,该变量可以被继承但是不能被重新赋值.因为这个变量其实是常量. 常量: A:字面值常量 "hello",10,true B:自定义常量 final int x = 10; */ //final class Fu //无法从最终Fu进行继承,final是最终类…