1.编写一个学生类,提供name、age、gender、phone、address、email成员变量,且为每个成员变量提供setter和getter方法,为学生类提供默认的构造器和带所有成员变量的构造器,为学生类提供方法,用于描述学习、吃饭、睡觉、运动等行为
class Student
{
String name,gender,phone,address,email;
int age;
Student(String name,String gender,String phone,String address,String email,int age){
this.name=name;
this.gender=gender;
this.phone=phone;
this.address=address;
this.email=email;
this.age=age;
}
void setter_name(String name){
this.name=name;
}
void setter_gender(String gender){
this.gender=gender;
}
void setter_phone(String phone){
this.phone=phone;
}
void setter_address(String address){
this.address=address;
}
void setter_email(String email){
this.email=email;
}
void setter_name(int age){
this.age=age;
}
String get_name(String name){
return name;
}
String get_gender(String gender){
return gender;
}
String get_phone(String phone){
return phone;
}
String get_address(String address){
return address;
}
String get_email(String email){
return email;
}
int get_age(int age){
return age;
}
void eat(){
System.out.println("我吃饭了!");
}
void study(){
System.out.println("我学习了!");
}
void sleep(){
System.out.println("我睡觉了!");
}
void sport(){
System.out.println("我运动了!");
}
}
2.利用第1题定义的Student类,定义一个Student[]数组保存多个Student对象作为通讯录数据。程序可通过name、email、address查询,如果找不到数据,则进行友好提示。
Java输入可以写为
Scanner in = new Scanner(System.in);
System.out.println("请输入名字或邮箱或地址中的一个:");
String input = in.next();
解答:
import java.util.*;
public class Student
{
//定义六个成员变量,并隐藏起来
private String name;
private int age;
private String gender;
private String phone;
private String address;
private String email;
//提供操作name成员变量的方法
public void setName(String name)
{
//执行合理性校验,要求学生姓名必须在2-8位之间
if (name.length()>8 || name.length()<2)
{
System.out.println("输入的学生姓名不符合要求!");
return;
}
else
{
this.name=name;
}
}
public String getName()
{
return this.name;
}
//提供操作age成员变量的方法
public void setAge(int age)
{
//执行合理性校验,要求学生年龄必须在6-30之间
if (age>30 || age<6)
{
System.out.println("输入的学生年龄不符合要求!");
return;
}
else
{
this.age=age;
}
}
public int getAge()
{
return this.age;
}
//提供操作gender成员变量的方法
public void setGender(String gender)
{
if (gender != "男" || gender != "女")
{
System.out.println("输入的学生的性别不符合要求!");
return;
}
else
{
this.gender=gender;
}
}
public String getGender()
{
return this.gender;
}
//提供操作phone成员变量的方法
public void setPhone(String phone)
{
if (phone.length()<15) //最好用正则表达式,本书第七章有介绍。
{
System.out.println("输入的学生电话号码位数不正确!");
return;
}
else
{
this.phone=phone;
}
}
public String getPhone()
{
return this.phone;
}
//提供操作address成员变量的方法
public void setAddress(String address)
{
this.address=address;
}
public String getAddress()
{
return this.address;
}
//提供操作email成员变量的方法
public void setEmail(String email)
{
this.email=email;
}
public String getEmail()
{
return this.email;
}
//学生类默认的构造器
public Student()
{
this.name="刘备";
this.age=28;
this.gender="男";
this.phone="134567890";
this.address="大汉涿郡楼桑村";
this.email="dahanhuangshu@126.com";
}
//学生类带成员变量的构造器
public Student(String name,int age,String gender,String phone,String address,String email)
{
this.name = name;
this.age = age;
this.gender = gender;
this.phone = phone;
this.address = address;
this.email =email;
}
//提供“吃”的行为方法
public void eat()
{
System.out.println("吃:"+"日啖荔枝三百颗,不妨长作岭南人。");
}
//提供“喝”的行为方法
public void drink()
{
System.out.println("喝:"+"葡萄美酒夜光杯,欲饮琵琶马上催。");
}
//提供“玩”的行为方法
public void play()
{
System.out.println("玩:"+"牧童骑黄牛,歌声振林樾。意欲捕鸣蝉,忽然闭口立。");
}
//提供“睡”的行为方法
public void sleep()
{
System.out.println("睡:"+"大梦谁先觉?平生我自知。草堂春睡足,窗外日迟迟。");
}
//主方法入口
public static void main(String[] args)
{
Student st1=new Student();
Student st2=new Student("刘备",28,"男","123456789","大汉涿郡楼桑村","dahanhuangshu@126.com");
Student [] stu = {st1, st2};
Scanner in = new Scanner(System.in);
System.out.println("请输入名字或邮箱或地址中的一个:");
String input = in.next();
for (Student stus : stu)
{
// 用“==”运算符,该运算符表示指向字符串的引用是否相同
// 用.equals()方法,该方法比较的是字符串的内容是否相同
if (input.equals(stus.getName()) || input.equals(stus.getAddress()) || input.equals(stus.getEmail()))
{
System.out.println("存在该学生...");
System.out.println("===============================");
System.out.println(stus.name+"|"+stus.age+"|"+stus.gender+"|"+stus.phone+"|"+stus.address+"|"+stus.email);
System.out.println("===============================");
st1.eat();
st1.drink();
st1.play();
st1.sleep();
break;
}
else
{
System.out.println("不存在该学生...");
break;
}
}
}
}
3.简述this关键字的作用
答:
(1)this代表当前对象的一个引用。所谓当前对象,指的是调用类中方法或属性的那个对象。
(2)this只能在方法内部使用,表示对“调用方法的那个对象”的引用。但要注意,如果在方法内部调用同一个类的另一个方法,就不必使用this,直接调用即可。当前方法中的this引用会自动应用于同一类中的其他方法。
(3)this不能用于静态方法。main方法也是静态的,所以this也不能用于main方法。
(4)可以使用this关键字调用重载构造方法。避免相同的初始化代码,只能在构造方法中用,并且必须位于构造方法的第一句。并且,除了构造器之外,编译器禁止在其他任何方法中调用构造器。
4.编程实现将一个正整数分解并输出它的所有质因数。
import java.util.Scanner;
class temp {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字:");
int num = input.nextInt();
System.out.print(num+"=");//num为输入的数字。
for(int k=2;k<=num;k++){
while(num!=k){
if(num%k==0){
System.out.print(k + "*");
num=num/k;
k=k-1;
}
break;
}
}
System.out.println(num);
}
}