JAVA编程基础(七)字符串和操作符

2023-05-04 20:19:20 浏览数 (1)

第六节答案: 1.b 2.c 3.b 4.

代码语言:javascript复制
package com.makotojava.intro;

public class Person {
   private String name;
   private int age;
   private int height;
   private int  weight;
   private String eyeColor;
   private String gender;

   public String getName() { return name; }
   public void setName(String value) { name = value; }
   // Other getter/setter combinations...
   public int getAge() { return age; }
   public void setAge(int value) { age = value; }

   public int getHeight() { return height; }
   public void setHeight(int value) { height = value; }

   public int getWeight() { return weight; }
   public void setWeight(int value) { weight = value; }

   public String getEyeColor() { return eyeColor; }
   public void setEyeColor(String value) { eyeColor = value; }

   public String getGender() { return gender; }
   public void setGender(String value) { gender = value; }

   public String toString() {
     String ret = "Name: "   getName()   ", "  
        "Height: "   getHeight()   ", "  
        "Weight: "   getWeight()   ", "  
        "Eye Color: "   getEyeColor()   ", "  
        "Gender: "   getGender();

     return ret;
   }
}

5.

代码语言:javascript复制
package com.makotojava.intro;

import static org.junit.Assert.*;

import java.util.logging.Logger;

import org.junit.Test;

public class PersonTest {

    @Test
    public void testPerson() {
        .
        .
        .
    }

    @Test
    public void testToString() {
      Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");

      Logger l = Logger.getLogger(PersonTest.class.getName());

      l.info("toString(): "   p.toString());
    }

实例化和操作字符串,并探讨算术运算符

本节学习目标

  • 学会多种方式实例化一个字符串对象和设置它的值
  • 理解字符串串联和方法串
  • 熟悉java的算术运算符操作

字符串

到目前为止,你已经遇到过几个String类型的变量了。String类型与很多方法供你操作字符串。

这里有一对方法来创建字符串:

代码语言:javascript复制
String greeting = new String("hello");
String greeting = "hello";

正如上面展示的一样,你可以使用new关键字初始化一个字符串对象,也可以使用字面量为一个字符串对象赋值。

连接字符串

通过字符串你可以做很多事情,String类包含很多有用的方法。甚至不是用一种方法,你都已经在Person类里的testPerson方法中做了一些有趣的事了,比如连接两个字符串:

代码语言:javascript复制
l.info("Name: "   p.getName());

“ ”在java语言中也可以是字符串的连字符号,可以用于拼接连个字符串。

字符串连接练习

现在,你可以在Perosn类中练习使用连接两个字符串了。在这一点上,你有一个名字的实例变量,但它在商业应用有FirstName和LastName。如果有另一个对象访问它的全名,你可以连接FirstName和LastName。

回到Eclipse工程,添加一个属性变量firstName和lastName。

代码语言:javascript复制
//private String name;
private String firstName;
private String lastName;

方法链调用

在上面基础上generate新属性的getter、setter方法。增加一个获得全名的方法:

代码语言:javascript复制
public String getFullName() {
  return getFirstName().concat(" ").concat(getLastName());
}

上面的代码举例说明了方法链的调用。链式调用是一个不可变的对象像字符串的常用技术,对于一个不可变对象的修改,总是返回修改后的值(但是要求不改变最初对象的值)。

操作符

你已经知道了在java语言中使用”=”操作符赋值给一个变量。正如你所期望的一样,java语言可以做算术运算。

java语言中有两种类型的操作符:

  • 一元操作符: 只需要一个操作数
  • 二元操作符: 需要两个操作数

表1总结了java算数操作符:

操作符

用法

描述

a b

a与b的和

a

如果a是byte、short、char类型则会使转为int类型

-

a - b

a与b的差

-

-a

a的负数

*

a * b

a与b的乘积

/

a / b

a除以b,注意整形时:3/2=1

%

a % b

a除以b的余数

a

a自增1,返回a增值之前的值

a

a自增1,返回a增值之后的值

a–

a自减1,返回a减1之前的值

–a

a自减1,返回a减1之后的值

=

a = b

等价于 a = a b

-=

a *= b

等价于 a = a - b

*=

a *= b

等价于 a = a * b

%=

a %= b

等价于 a = a % b

其他的操作符

除表1之外,在java语言中你可能还会遇见其他操作符,例如:

  • 点符(.), 指定包名或调用方法时可以使用
  • 圆括号(()), 划定一个逗号分隔的参数列表的方法
  • new关键字, 紧接着构造器的名字常用于初始化一个对象

0 人点赞