7.面向对象基础
1、 什么是对象?什么是类?说明一下类和对象的关系?
正确答案:
类(class)和对象(object)是两种以计算机为载体的计算机语言的合称。
对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型。
它们的关系是,对象是类的一个具体实例,类是对象的模板;对象的具体的,类是抽象的;
【编程题】
定义一个厨师类(Chef),并为厨师类定义制作牛肉面的重载方法cookNoodle();
关于牛肉面的参数如下;
尺寸:size (大碗还是小碗) 大碗10元,小碗8元
是否加肉:beef :加肉+5元
加蛋的数量:eggs :每个2元;
定义以下重载方法,用来输入面条的信息,同时返回牛肉面的价格;
int cookNoodle(); //默认为大碗
int cookNoodle(int size); //1为大碗,其它数字为小碗
int cookNoodle(int size,boolean beef);
int cookNoodle(int size boolean beef,int eggs);
当用户调用int money= cookeNoodle(1,true,2);时,将返回19,同时输出
你购买的面加2个蛋,加肉的大碗牛肉面;总价为19元;
public class Chef {
private int size = 1;
private boolean beef;
private int eggs;
//默认为大碗
int cookNoodle(){
int sum = 0;
if(size==1){
sum += 10;
}else{
sum+=8;
}
if(beef){
sum += 5;
}
sum += eggs*2;
return sum;
}
//1为大碗,其它数字为小碗
int cookNoodle(int size){
this.size = size;
return cookNoodle();
}
int cookNoodle(int size,boolean beef){
this.size = size;
this.beef = beef;
return cookNoodle();
}
int cookNoodle(int size,boolean beef,int eggs){
this.size = size;
this.beef = beef;
this.eggs = eggs;
return cookNoodle();
}
public static void main(String[] args) {
Chef c = new Chef();
int money = c.cookNoodle(1,true,2);
System.out.println(money);
}
}
8.构造方法与继承
1、 Java类Demo中存在方法func1、func2、func3和func4,请问该方法中,哪些是不合法的定义?( )【√】
public class Demo{
float func1()
{
int i=1;
return;
}
float func2()
{
short i=2;
return i;
}
float func3()
{
long i=3;
return i;
}
float func4()
{
double i=4;
return i;
}
}
[多选题]
A、func1 √
Dfunc4√
2.如何定义一个构造方法?构造方法的主要作用是什么?
构造方法是一个特殊的方法。
构造方法的名称与类同名,没有返回值;
每个类中都必须至少有一个构造方法,如果不定义,编译器会自动生成一个无参的构造方法;
构造方法的作用是给对象的属性赋初值;
3.编写Java程序,用于显示人的姓名和年龄。 定义一个人类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。定义构造方法,用来初始化数据成员。再定义显示(display)方法,将姓名和年龄打印出来。 在main方法中创建人类的实例,然后将信息显示。
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void display() {
System.out.println("姓名:"+name+",年龄:"+age);
}
public static void main(String[] args) {
Person p = new Person("tom",20);
p.display();
}
}
4.【编程题】构造方法与重载
为"无名的粉"写一个类:class WuMingFen 要求:
1.有三个属性:面码:String theMa 粉的份量(两):int quantity
是否带汤:boolean likeSoup
2.写一个构造方法,以便于简化初始化过程,如:
WuMingFen f1 = new WuMingFen(“牛肉”,3,