javaSE各阶段练习题---面向对象-类与对象、封装、构造方法(1

1-8题抽查提问,能够使用给自己的语言表述
1、什么是面向对象?
	1、是一种编程思想
	JAVA语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想。我们在面向对象思想的指引下,
使用java语言设计、开发计算机程序。这里的对象泛指,现实中的一切事物,每个事物都具备自己的属性和行为。面向
对象思想就是在计算机程序设计过程中,参照现实中的事物,将事物的属性特征和行为特征凑想出来,描述成计算机
事件的设计思想。
	2、和面向过程的区别
	它区别于面向过程思想,强调的是调用对象的行为来实现功能,而不是自己一步一步是去操作实现。
	也就是说面向过程强调步骤,面向对象强调对象。
	3、面向对象的好处
	面向对象思想是一种更符合我们思考习惯的思想,他可以把复杂的事情简单化,并将我们从执行者变成了指挥者。	
	4、面向对象的特征
	面向对象的特征:封装,继承,多态
	*面向对象的封装性,即将对象封装成一个高度自治和相对封闭的个体,对象状态(属性)由这个对象自己的行为
来读取和改变。
	*抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处
并且会忽略与当前主题和目标无关,将注意力集中在与当前目标相关的方面,就是把现实中的对象,抽象为类。
	*多态指程序中定义的引用变量所指向的具体类型,和通过该引用变量发出的方法调用在编程时并不确定,而是在
程序运行时,即一个引用变量发出的方法调用到底是哪一类中实现的方法,必须在由程序运行期间决定。
	5、举例子
	比如洗衣服
	面向对象:把衣服脱下来-->打开全自动洗衣机-->扔衣服-->按钮-->晾起来
2、面向对象的三大思想特征是什么?
	封装,继承,多态
3、什么是类,什么是对象?
	用来抽象表示现实事物的基本单位是类。
	对象:是一类事物的具体体现,对象是类的一个实例,必然具备该类事物的属性和行为。
	类是对一类事物的描述,是抽象的。
	对象是一类事物的实例,是具体的。
	类是对象的模板,对象是类的实体/实例。
4、如何使用类中的成员变量和成员方法?
	成员变量:对应事物的属性 
	成员方法:对应事物的行为
	如何使用,
	对象名.成员变量;
	对象名.成员方法();例如:
	public class Student{
		//定义成员变量
		String name;
		int age;
		String gender;
		//定义成员方法
		public void study(){
			System.out.println("好好学习,天天向上");
		}
	}
	public class TestStudent{
		public static void main(String[] args){
			Student student = new Student();
			//使用成员变量
			student.name = "李孟冬";
			//使用成员方法
			student.study();
		}
	}
5、成员变量和局部变量的区别有哪些?
                   成员变量                  局部变量  
在类中的位置	 类中,方法外            方法中或者方法声明上(形式参数)              
作用范围         类中                    方法中		  
初始值           有默认值                没有默认值。必须先定义、赋值、然后在使用
内部中的位置     堆内存                  栈内存       
生命周期         随着对象的创建而存在    随着方法的调用而存在		  
		         随着对象的消失而消失    随着方法的调用完毕而消失
		  
6、什么是匿名对象?什么时候使用?
	匿名对象就是没有名字的对象。
	当对方法只进行一次调用的时候,可以使用匿名对象。
	
7、什么是封装?封装的好处,原则分别是什么?
	将代码中的属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。这就是封装。
	好处:1.是一个保护屏障,防止该类的代码和数据被其他类随意访问。
		  2.适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。
	原则:
	1. 使用 private 关键字来修饰成员变量。
	2. 对需要访问的成员变量,提供对应的一对 getXxx 方法(获取值) 、setXxx(设置值/赋值) 方法。
	3. 其他地方要操作可以通过getXxx和setXxx方法来操作

8、this的作用是什么?
this代表所在类的当前对象的引用(地址值),即对象自己的引用。
记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。

9、根据如下需求,完成代码(按照标准格式写:属性私有,提供get、Set方法),然后在测试类中测试。
	需求一:
		手机类Phone
			属性:品牌brand,价格price
			行为:打电话call,发短信sendMessage,玩游戏,playGame
	需求二:
		人类Person
			属性:姓名name,年龄age,性别gender
			行为:学习study,睡觉sleep

	需求三:
		动物类Animal
			属性:姓名name,年龄age
			行为:吃饭eat
	需求四:
		狗类Dog
			属性:姓名name,年龄age
			行为:吃饭eat,看家lookHome
	需求五:
		猫类Cat
			属性:姓名name,年龄age
			行为:吃饭eat,抓老鼠catchMouse
	需求六:
		学生类Student
			属性:语文成绩chinese,数学成绩math,英语成绩english
			行为:求总成绩的方法getSum()

	需求七:
		长方形类
			属性:
			行为:求取长方形的周长和面积
			
//测试类
package com.henu;

public class TestAllObject {

	public static void main(String[] args) {
		
		//Phone
		Phone phone = new Phone("华为",3499.00);
		System.out.println(phone);
		phone.call();
		phone.sendMessage();
		phone.playGame();
		/*
		 * 输出:
		 * Phone [brand=华为, price=3499.0]
		 * 	华为可以打电话!!!
			华为还可以发信息!!!
			华为还可以玩游戏!!!
		 */
		
		//Person
		Person person = new Person("李孟冬",22,"男");
		System.out.println(person);
		person.study();
		person.sleep();
		/*
		 * 输出结果:
		 * 	Person [name=李孟冬, age=22, gender=男]
			李孟冬学习中
			等到了0点李孟冬就睡觉了
		 */
		
		//Animal
		Animal animal = new Animal();
		animal.eat();
		/*
		 * 输出:
		 * 我是藏獒,我一顿能吃100块骨头!
		 */
		
		//Dog
		Dog dog = new Dog();
		dog.lookHome();
		dog.eat();
		/*
		 * 输出:
		 * 	我要好好看家不然主人就不给我吃的了!
			耶!主人回来了,大骨头...
		 */
		
		//Cat
		Cat cat = new Cat();
		cat.eat();
		cat.catchMouse();
		/*
		 * 输出:
		 * 	我爱吃饭!!!身体好好!!!
			吃饱了就可以减肥了,最好的锻炼方法当然是抓老鼠!
		 */
		
		//Student
		Student student = new Student(150,150,150);
		System.out.println(student);
		student.getSum();
		/*
		 * 输出:
		 * 	Student [chinese=150, math=150, english=150]
			你的总成绩是450
		 */
		
		//长方形类
		Rectangle rectangle = new Rectangle(20,10);
		rectangle.getPerimeter();
		rectangle.getArea();
		/*
		 * 输出:	周长为:60
				面积为:200
		 * 
		 */
	}

}

其他实体类(按测试类顺序进行)
package com.henu;


public class Phone {
	private String brand;
	private Double price;
	
	

	@Override
	public String toString() {
		return "Phone [brand=" + brand + ", price=" + price + "]";
	}

	public Phone(String brand, Double price) {
		super();
		this.brand = brand;
		this.price = price;
	}

	public Phone() {
		super();
		// TODO Auto-generated constructor stub
	}

	public void call() {
		System.out.println(brand+"可以打电话!!!");
	}
	
	public void sendMessage() {
		System.out.println(brand+"还可以发信息!!!");
	}
	
	public void playGame() {
		System.out.println(brand+"还可以玩游戏!!!");
	}

	public String getBrand() {
		return brand;
	}

	public void setBrand(String brand) {
		this.brand = brand;
	}

	public Double getPrice() {
		return price;
	}

	public void setPrice(Double price) {
		this.price = price;
	}
	
	
}

************************************************

package com.henu;


public class Person {
	private String name;
	private int age;
	private String gender;
	public Person() {
	}
	public Person(String name, int age, String gender) {
		this.name = name;
		this.age = age;
		this.gender = gender;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + ", gender=" + gender + "]";
	}
	
	public void study() {
		System.out.println(name+"学习中");
	}
	public void sleep() {
		System.out.println("等到了0点"+name+"就睡觉了");
	}
	
}

************************************************
package com.henu;

public class Animal {
	private String name;
	private int age;
	
	
	public String getName() {
		return name;
	}


	public void setName(String name) {
		this.name = name;
	}


	public int getAge() {
		return age;
	}


	public void setAge(int age) {
		this.age = age;
	}


	public void eat() {
		System.out.println("我是藏獒,我一顿能吃100块骨头!");
	}
}

************************************************
package com.henu;

public class Dog {
	private String name;
	private int age;	
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public void lookHome() {
		System.out.println("我要好好看家不然主人就不给我吃的了!");
	}
	public void eat() {
		System.out.println("耶!主人回来了,大骨头...");
	}	
}

************************************************
package com.henu;

public class Cat {
	private String name;
	private int age;
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public void eat() {
		System.out.println("我爱吃饭!!!身体好好!!!");
	}
	
	public void catchMouse() {
		System.out.println("吃饱了就可以减肥了,最好的锻炼方法当然是抓老鼠!");
	}
}


************************************************
package com.henu;

public class Student {
	private int chinese;
	private int math;
	private int english;
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Student(int chinese, int math, int english) {
		super();
		this.chinese = chinese;
		this.math = math;
		this.english = english;
	}
	public int getChinese() {
		return chinese;
	}
	public void setChinese(int chinese) {
		this.chinese = chinese;
	}
	public int getMath() {
		return math;
	}
	public void setMath(int math) {
		this.math = math;
	}
	public int getEnglish() {
		return english;
	}
	public void setEnglish(int english) {
		this.english = english;
	}
	@Override
	public String toString() {
		return "Student [chinese=" + chinese + ", math=" + math + ", english=" + english + "]";
	}
	
	public void getSum() {
		System.out.println("你的总成绩是"+(chinese+math+english));
	}
}


************************************************
package com.henu;

public class Rectangle {
	private int length;
	private int width;
	public Rectangle() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Rectangle(int length, int width) {
		super();
		this.length = length;
		this.width = width;
	}
	public int getLength() {
		return length;
	}
	public void setLength(int length) {
		this.length = length;
	}
	public int getWidth() {
		return width;
	}
	public void setWidth(int width) {
		this.width = width;
	}
	@Override
	public String toString() {
		return "Rectangle [length=" + length + ", width=" + width + "]";
	}
	
	public void getPerimeter() {
		System.out.println("周长为:"+ (length+width)*2);
	}
	public void getArea() {
		System.out.println("面积为:"+ length*width);
	}
}

************************************************






	
			

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值