Java小记第二周

我目前的状态是:拼命往前赶。然后来总结一下我这周所学的内容

1、static关键字的用法

在类中,用static声明的成员变量为静态成员变量,也称为类变量,从属于类;普通变量和方法从属于对象

非静态成员方法可以调用静态成员变量和方法,而静态成员方法不可以调用非静态成员变量和方法

public static void printCompany() {
      //login();//调用非静态成员,编译就会报错

/**
 * 
 * @author 王蕊
 *
 */
public class User {
  int id;//id
  String name;//账户名
  String pwd;//密码
  static String company="北京尚学堂";//公司名称
  public User(int id,String name) {
	  this.id=id;
	  this.name=name;
  }
  public void login() {//非静态可以调用静态
	  System.out.println("登录:"+name);
  }
  public static void printCompany() {//静态不可以调用非静态
	  //login();//调用非静态成员,编译就会报错
	  System.out.println(company);
  }
  public static void main(String[] args) {
	  User s=new User(101,"高小七");
	  User.printCompany();
	  User.company="北京阿里爷爷";
	  User.printCompany();
  }
}

2、构造方法,用于对象的初始化

(1)、通过new关键字调用

Point p = new Point(3.0,4.0);

(2)、构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值

return有两个作用:1、返回某个值。2、结束方法的运行。

(3)、如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加

(4)、构造器的方法名必须和类名一致

class Point{

double x,y;

public Point(double_x,double_y){                                public Point(double x,double y){

x=_x;                                                                                  this.x=x;

y=_y;                                                                                  this.y=y;

}                                                                                     }//用this关键字来进行区别

}                                                                                      //this表示创建好的对象

 3、嵌套循环:在一个循环语句内部再嵌套一个或多个循环

打印:

1        1        1        1        1

2        2        2        2        2

3        3        3        3        3

4        4        4        4        4

5        5        5        5        5

/**
 * 测试嵌套循环
 * @author 王蕊
 *
 */
public class TestFor {
  public static void main(String[] args) {
	  for(int i=1;i<=5;i++) {
		  for(int j=1;j<=5;j++) {
			  System.out.print(i+"\t");
		  }
		  System.out.println();
		  }
	  
	  
  }
  }

 4、break和continue语句

break用于强行退出循环,不执行循环中剩余的语句

continue用于循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定

/**
 * break  and  continue语句
 * @author 王蕊
 *
 */
public class testBreakandContinue {
  public static void main(String[] args) {
	  //  把100~150之间不能被3整除的数输出,并且每行输出五个
	  int count = 0;//定义计数器
	  for(int i=100;i<150;i++) {
		  //如果是3的倍数,则跳过本次循环,继续进行下一次循环
		  if(i%3==0) {
			  continue;
		  }
		  //否则(不是3的倍数),输出该数
		  System.out.print(i+"、");
		  count++;//每输出一个数,计数器加一
		  //根据计数器判断每行是否已经输出了5个数
		  if(count%5==0) {
			  System.out.println();
			  count=0;//是否重置都可以
		  }
	  }
  }
}

5、递归

递归的基本思想就是”自己调用自己”
 *  递归结构包括两个部分:
 *  1、定义递归头。(什么时候不调用自身方法)
 *  2、递归体。(什么时候需要调用自身方法)

/**
 * 测试递归
 * @author 王蕊
 *
 */
public class testdigui {
  public static void main(String[] args) {
	  a();
  }
  static int count = 0;
  static void a() {
	  System.out.println("a");
	  count++;
	  if(count<10) {
		  a();
	  }else {
		  return;
	  }
  }
  static void b() {
	  System.out.println("b");
  }
} 

 现在正学习到继承的内容,还没有学到数组,我会尽力赶上的

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Protobuf是一种高效的序列化协议,可以用于数据交换和数据存储。它的主要优势是大小小,速度快,可扩展性强。下面是使用Protobuf的一些小记: 1. 定义消息格式 首先,需要定义消息格式,以便Protobuf可以将数据序列化和反序列化。消息格式定义在.proto文件中,使用protobuf语言编写。例如,下面是一个简单的消息格式定义: ``` syntax = "proto3"; message Person { string name = 1; int32 age = 2; } ``` 这个消息格式定义了一个名为Person的消息,包含两个字段:name和age。 2. 生成代码 一旦消息格式定义好,就可以使用Protobuf编译器生成代码。编译器将根据消息格式定义生成相应的代码,包括消息类、序列化和反序列化方法等。可以使用以下命令生成代码: ``` protoc --java_out=. message.proto ``` 这将生成一个名为message.pb.javaJava类,该类包含Person消息的定义以及相关方法。 3. 序列化和反序列化 一旦生成了代码,就可以使用Protobuf序列化和反序列化数据。例如,下面是一个示例代码,将一个Person对象序列化为字节数组,并将其反序列化为另一个Person对象: ``` Person person = Person.newBuilder() .setName("Alice") .setAge(25) .build(); byte[] bytes = person.toByteArray(); Person deserializedPerson = Person.parseFrom(bytes); ``` 这个示例代码创建了一个Person对象,将其序列化为字节数组,然后将其反序列化为另一个Person对象。在这个过程中,Protobuf使用生成的代码执行序列化和反序列化操作。 以上是使用Protobuf的一些基本步骤和注意事项,希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值