您好,欢迎来到年旅网。
搜索
您的当前位置:首页Java面向对象程序设计思想(一)

Java面向对象程序设计思想(一)

来源:年旅网

类和对象的创建

公有成员和私有成员

  1. 类的成员变量和成员方法如果它的访问权限是public,它就可以被其它所有类访问声明一个类中的成员为公有的,那么该类必须是公有类。
  2. 创建公有成员: public 变量名 //类成员变量
    public int lichaowu(){ //类成员方法
    ………
    }
    以上用的公有的修饰。成员修饰有多种见上章表,用法一样,但要注意权限
  3. 一个类至少有一个公有的,保护的或者友好的成员方法
  4. 如果一个成员方法不会产生任何不希望的后果,它可以被声明为公有的
  5. 如果一个成员方法可能使对象失效或不被其它类使用,它应当是私有的
  6. 一个对象所有的成员变量如有可能应当是私有的,至少应当是保护类型的
  7. 封装(null)

构造函数与重载

  1. 构造函数与类名同名,没有返回值,一个类可以定义多个构造函数,但每个构造函数的参数内容必须不同;

  2. 创建构造函数:类名(参数列表){
    …….
    }

  3. 成员方法的重载:重载的是意思是一个类中有多个相同名的方法。但是每个方法的参数不同(可以没有参数);
    作用:Java程序中方法的重载是实现面向对象多态性的一个重要方法

    1. 参数个数不同
    2. 参数类型不同
    3. 与方法前面的修饰符,返回值无关
    4. 调用时根据它的实参的类型,个数以及顺序来区分调用哪个方法(顺序时类型必须不一样)
    5. 不能通过访问权限。返回类型,抛出异常进行重载。
    6. 方法的异常类型和数目不会对重载造成影响
    7. 对于继承来说,如果某一个方法在父类中是priavte(私有的),那么就不能在子类对其进行重载,若要定义,也只是定义了一个新的方法,而不会达到重载的效果。
    8. Java中支持构造函数的重载(构造函数可以省略不写,会自动生成的,为了符合类的定义),格式同上。

  4. 构造函数怎么调用构造函数,前面在this讲过。如下:

public class Person{
     String name;
     int age;
     public Person(String name){
          this.name = name;
     }
     public Person(String name,int age){
          this(name); //调用了Person(String name)
          this.age = age;
     }
}

知识提前扩展(网络编程+netchatroom)

对于学习要勇于探索新的知识,其实有的时候我们都存在一个误区,也是我以前一直存在的,那就是觉得自己基础不好(特别对待英语,数学等),导师讲一个小项目,然后用得是一种我们没学过的语言或者一种工具来写,他在讲的时候可能我们听不懂,我们会觉得老师怎么样怎么样,心里觉得这老师不会讲,不会体会同学们的感受,为什么不从基础讲起,然后干脆不听了,反正听不懂。然而你想过没有其实完全可以通过课后时间来学,而且甚至可以比老师讲的还快。对于不听这是一种自己内心本就抵抗的心理+一个懒字。解决方法:你要正确全面认真的认识这门语言或者工具。另外对于我来说就一个字:。就是对自己狠!对一件事连续坚持一个星期,慢慢你会发现原来也没有那么难。接着一个月,你会发现你坚持的事不止一件了。

  • 首先感谢华信IT教育的王海斌校长和蒋斌老师牺牲您们宝贵的周未时间给我上课,每一次听课都是对这个行业的一种新的认知!感谢!不负众望!交流学习扣扣群:866512107
  • 网络编程是什么
    答:网络编程我理解成为两点;1.网络是什么?网络是创建用户与用户之间的通信的类;2.网络编程就是把网络给实例化。然后实现一些功能,如:接收/发送也就是实现通信等。
  • 网络编程的应用
    简单点说就是只要你连网就会用到已经写好的网络编程。没有网络编程你任何事都做不了发不了QQ消息,打不了游戏。反正只要你想通信,你就得用到网络编程。这是我的理解
  • 如何创建服务器
    我这里不做文字讲述直接写代码+注释:
package FHVK;
/**
 * 创建服务器的程序
 * @author 李超武
 *本程序还不能实现通信,1.没有连接对象 2.没有发送和接收的功能*/
 
import java.net.*;   /*java中与网络相关的功能都定义在此包
创建服务器的方法就在此中包括下面要讲的连接服务器,
所以这句就是把它导入到本程序中,方便进行调用其中的方法*/

public class Server { //创建一个类
	//主函数程序的入口
	public static void main(String[] args){
		Server server = new Server();  //创建对象
		server.CreateServer(8888);  //调用server对象中创建服务器的方法
	}
	//创建服务器的方法
	public void CreateServer(int port){ /*port代表端口,1,端口代表程序在计算机中的位置,2.ip地址代表计算机在网络中的位置*/
		//捕获异常(还有抛出异常,最好用捕获直播解决。麻烦少)
		try{
		    //这是最关键的,创建连接服务器对象传给它一个端口
			ServerSocket serversocket = new ServerSocket(port);
			//提示语句
			System.out.println("代表服务器创建成功。等待用户的连接...");
		}catch (Exception e){
			e.printStackTrace();
		}
	}
}

运行本程序将输出:代表服务器创建成功。等待用户的连接…
所以差个用户连接接着往下看哈哈。

  • 如何使用本地客户端连接服务器/如何自己写服务器并连接
    为了更好的表达出来我将在创建服务器的方法中写一个发送功能。发送一条:“Successful connection to server!”的信息,怎么写见下图(什么意思我会在写连接服务器的时候写):
package FHVK;

/**
 * 创建一个客户端
 * 连接到服务器端
 * @author 李超武
 * 实现发送和接收功能
 */

import java.net.*;   //讲过,同理也要导进来
import java.io.*;  /* i/o流包,代表输入输出
(我们将使用它的InputStream流类和OutputStream流类进行接收和写入)*/

public class Client {
	//全局变量,全局变量的使用是为了某个变量或者常量的作用域达到整个类
	InputStream in;   /*为什么定义成全局的?这会讨论到作用域,在本程序用不到
	但在后面写UI的时候用得到,在后续说*/
	
	//偷下懒,写过的注释不写啦
	public static void main(String[] args){
		Client client = new Client();
		/*locahlost代表本地ip地址
		8888代表端口其它计算机就是通过这两个数据找到对应计算机的服务器
		*/
		client.ConnectClient("localhost", 8888);  /*telnet localhost 8888 是cmd中的命令
		telnet是Win内部命令用于连接到指定服务器,localhost 8888在上面说过 那如果是别人想连怎么办
		很简单,把localhost改成服务器ip地址就好啦,但要注意前提得在同一局域网*/
	}
	
	//创建连接服务器方法
	public void ConnectClient(String ip,int port){
		try{
			//最重要的,创建连接对象并把ip和端口给它
			Socket connect = new Socket(ip,port); 
			//获取输入流对象用于接收消息
			in = connect.getInputStream();
			/*在服务器中我们加了getBytes()方法就是用来把字符转换为字节
			 在传送过程中所有数据都会转换成字节进行发送和接收*/
			int data = in.read();  //int data用户接收字节数据
			while(data != 13){  
			/*为什么循环?因为数据是一个一个字节读取的
			有个结束判断为什么不等于13,在服务器中
			我们在message后面是不是加了\r\n,\r的ASCII值为13
			所以当读取到\r的时候就跳出循环啦  \n的值为10*/
				System.out.print((char)data); //接收的字节,为了更好的表示出来我们把它强转成字符
				data = in.read();  //继续接收
			}
		}catch (Exception e){
			e.printStackTrace();
		}
	}
}

运行:先运行Server 再运行客户端

  • 你们有没有发现只是单方面在接收和发送消息,如何把客户端做成可以发送和接收并还可以贴上UI,聊天不可能是客户和服务器聊,服务器只是处理发送过来的数据,然后转发给指定的客户,所以怎么写多个客户端(类似群聊),你有没有发现如果我发送的是一串中文,而文字是占两个字节,而接收是一个字节接收,会出现什么问题?这将在下一章讲,考虑到时间和篇幅〜(由于时间关系很多细节和点没讲到位欢迎指错。。。。)
  • 顺便祝我科二一把过哈哈哈哈哈哈

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务