4.1 Java 封装

4月1号 原创bwj
一、选择

当类中的一个成员方法被下面哪个修饰符修饰后,该方法只能在本类中被访问 B
A. public
B. private
C. final
D. default
运行以下Java代码,说法正确的是C
在这里插入图片描述

A. 15
B. 程序运行正常,但无输出
C. 编译报错
D. 运行报错

java封装的意义(多选)ABC
A. 防止使用者错误修改系统的属性
B. 提高系统的独立性
C. 提高软件的可重用性
D. 提高构建大型系统的风险
下面代码的运行结果是A
在这里插入图片描述

A. 我是一名学生。
B. 我是一个即将大学毕业的学生。
C. 我是一名学生。
我是一个即将大学毕业的学生。
D. 编译错误

关于package+包名;的说法不正确的是A
A. 一个java源文件可以有多个package语句
B. 建议包名应该全部英文小写
C. 建议包名命名方式:域名倒叙+模块+功能
D. "package+包名;"必须放在java源文件中的第一行

下面关于import,class和package的声明顺序哪个是正确的A
A. package,import,class
B. class,import,package
C. import,package,class
D. package,class,import

以下代码运行结果为:A
在这里插入图片描述

A. 编译出错
B. 输出:c
C. 编译正常,运行时报错
D. 编译正常,运行时无输出结果

下列关于static的说法不正确的是 A
A. 可以定义静态方法,但不能定义静态变量
B. class前不可以是用static作为修饰符
C. static可以把普通的成员方法变为一个静态方法
D. static可以把一个普通方法变为一个类方法

关于静态方法和非静态方法,以下描述正确的是D
A. 非静态方法只能访问非静态变量
B. 静态方法既可以直接访问本类的静态变量,也可以直接访问本类的非静态变量
C. 静态方法在类外只能通过类名来调用
D. 非静态方法在类外只能通过对象来调用
下面这段代码中,报错的地方原因是(多选)ACD
在这里插入图片描述

A. 没有传入参数
B. 没有使用类方法来调用
C. 不能使用静态引用去访问非静态的方法
D. 只要实例化对象就不会报错了
二、编程

编写自定义类实现图书信息设置
任务:
属性:书名、作者、出版社、价格
方法:信息介绍
要求:

设计构造函数实现对属性赋值
设置私有属性,get/set方法实现对属性的访问
限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
限定作者、书名均为只读属性
信息介绍方法描述图书所有信息

package home;

public class BookMessage {
	//私有属性:书名、作者、出版社、价格
	private String bookName;
	private String bookAuthor;
	private String bookPublished;
	private int bookPrvice;
	
	 //通过构造方法实现属性赋值
	public BookMessage() {
		this.getBookName(); 
		this.getBookAuthor();
		this.getBookPublished();
		this.getBookPrvice();
	}
	
	public void setBookName(String bookName) {
		this.bookName = bookName;
	}
	public String getBookName() {
		return this.bookName;
	}
	
	public void setBookAuthor(String bookAuthor) {
		this.bookAuthor = bookAuthor;
	}
	public String getBookAuthor() {
		return this.bookAuthor;
	}
	
	public void setBookPublished(String bookPublished) {
		this.bookPublished = bookPublished;
	}
	public String getBookPublished() {
		return this.bookPublished;
	}
	
	public void setBookPrvice(int bookPrvice) {
		if(bookPrvice > 10) {
			this.bookPrvice = bookPrvice;
		} else {
			System.out.println("书的价格必须大于10");
			this.bookPrvice = 10;
		}
	}
	public int getBookPrvice() {
		return this.bookPrvice;
	}
	
	public String introduce() {
		String str;
		str = "这是一本" + this.getBookName()+"书" + "价格是" + this.getBookPrvice() + "元" + "作者是" + this.getBookAuthor();
		return str;
	}
}

package home;

public class BookTest {
	public static void main(String[] args) {
		BookMessage msg1 = new BookMessage();
		msg1.setBookAuthor("罗贯中");
		msg1.setBookName("三国演义");
		msg1.setBookPrvice(46);
		System.out.println(msg1.introduce());
	}
}

编写自定义类实现用户信息类。
任务:

用户类:
属性:用户名、密码
用户管理类:
方法:用户信息验证
要求:
1. 设计构造函数实现对属性赋值
2. 设置私有属性,get/set方法实现对属性的访问
3. 用户信息验证判断两个用户信息是否一致。当用户名和密码都一致的时候返回:用户名和密码一致,否则返回:用户名或密码不一致

PS:
字符串的判断不可以使用==进行判断,可以通过equals()方法进行字符串内容的判断,如果内容相等返回值为true,反之为false,如当str代表用户性别时,可以通过如下代码,判断性别为“男”还是“女”
在这里插入图片描述

代码运行结果参考:

package home;

public class AdminMessage {
//	属性:用户名、密码
	private String admin;
	private String password;
	
	public AdminMessage() {
		this.getAdmin();
		this.getPassword();
	}
	
	public String getAdmin() {
		return admin;
	}
	public void setAdmin(String admin) {
		this.admin = admin;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	public void msg(String admin ,String password) {
		if(this.admin.equals(admin) && this.password.equals(password)) {
			this.admin = admin;
			this.password = password;
			System.out.println("用户名:"+ this.admin);
			System.out.println("用户名:"+ this.password);
			System.out.println("用户名:"+ admin);
			System.out.println("用户名:"+ password);
			System.out.println("=====================");
			System.out.println("用户名和密码一至");
			
		}  else{
			System.out.println("用户名:"+ this.admin);
			System.out.println("用户名:"+ this.password);
			System.out.println("用户名:"+ admin);
			System.out.println("用户名:"+ password);
			System.out.println("=====================");
			System.out.println("用户名或密码不一至");
		}
	
	}
	
}

package home;

public class AdminTest {
	public static void main(String[] args) {
		AdminMessage ams = new AdminMessage();
		ams.setAdmin("小红");
		ams.setPassword("123456");
		ams.msg("小白","54321");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值