A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© perry2017 初级黑马   /  2018-1-4 17:12  /  600 人查看  /  0 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 perry2017 于 2018-1-4 17:14 编辑

课程笔记--<反射><网络>

1.  反射部分
反射的目的
  • 在运行时,我们可以获取任意一个类的所有方法和属性
  • 在运行时,让我们调用任意一个对象的所有方法和属性
反射的前提
  • 要获取类的对象(Class对象)

    • 通过Object.getClass
    • 类名.class
    • class的forname()

构造方法

    getContructors()只能获取public修饰的构造方法
    Class stuClass = Class.forName("com.fanshe.Student");
    Constructor[] constructors = stuClass.getConstructors();
    for (Constructor constructor : constructors) {
    System.out.println(constructor);
    }
    //1、获取无参的
    Constructor nullPram = stuClass.getConstructor();
    System.out.println(nullPram);
    //2、获取有参的
    Constructor hasPram = stuClass.getConstructor(String.class, int.class);
    System.out.println(hasPram);

    //3、通过Constructor对象创建学生类的对象
    Object s1 = nullPram.newInstance();
    System.out.println(s1);
    Object s2 = hasPram.newInstance("张三", 18);
    System.out.println(s2);

    ## 成员变量


      java 1. 获取学生类的字节码对象 Class clazz = Class.forname("包名+类名"); 2. 获取学生的对象 Object stu = clazz.newInstance();
      java 1. Field fs = clazz.getFields();
      Field getFied(String fieldName) Fields getFieds();
      * 使用成员变量的步骤
      java 1. 获取学生类的字节对象 2. 获取学生对象 3. 获取私有的字段对象 4. 修改字段对象 set 5、打印
    成员方法
    • 无参无返回值
      1. 获取学生类的字节码对象   Class clazz = Class.forname("包名+类名");2. 获取学生类的对象   Object stu = clazz.newInstance();3.Method.invoke(Object, )
    • 有参无返回值
    • 无参有返回值的方法

    JavaBean
    • JavaBean:用于封装数据

      • 类使用公共进行修饰
      • 提供私有修饰的成员变量
      • 为成员变量提供公共getter和setter方法
      • 提供公共无参的构造
      • 实现序列号接口
    • BueanUtils: Apache提供的一个组件,主要功能就是为了简化JavaBean封装的操作
    • setProperty(Object bean, String name, Object value) 给JavaBean对象的成员变量进行赋值
      底层并不是直接操作成员变量,而是操作和成员变量名有关的get和set方法。

2.  网络部分

网络编程
  • Socket(套接字)
  • 通信通信三要素
    • IP地址:InetAddress(32位)
      网络中设备的标识,不易记忆,可用主机名
    • 端口号
      用于标识进程的逻辑地址,不同进程的标识
    • 传输协议
      作用: 通信的规则
UDP
  • 使用UDP协议发送数据//创建发送端Socket对象DatagramSocket ds = new DatagramSocket();创建数据并打包//发送数据 ds.send();//释放资源ds.close();
TCP
1、发送步骤
1. 创建发送端Socket对象(创建连接)
2. 获取输出流对象
3. 发送数据
4. 释放资源
public class void main[String[] args] {   
//创建发送端Socket对象(创建连接)   
Socket socket = new Socket(InetAddress.getName("主机名"),port);   
OutputStream os = socket.getOutputStream();   
String str = "Hello";  
  os.writer(str.getBatys());   
socket.close();   
os.close();
}
2、接收步骤
1. 创建接收端Socket对象(明确端口号)
2. 监听(阻塞)
3. 获取输入流对象
4. 获取数据/输出数据
5. 释放资源
public class void main[String[] args] {
   ServerSocket server = new ServerSocket(port);
   Socket socket = server.accpet();
   InputStream is = socket.getInputStream();
    byte[] buf  = new byte[1-24];
   int len;    len= is.read(buf);
   syso(new String(buf,0,len));
   socket.close();
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马