今天我们一起来学习Java语言之对象和类与接口中的类的定义与使用的内容吧!!!
首先让我们先温习一下有关类的定义的知识。
Java中的类:
类是一个模板,它描述一类对象的行为和状态。
例:
public class Dog{//类名首字母需大写,这是语法规范
void barking(){
}
void eating(){
}
void sleeping(){
}
String name;
String breed;
int age;
}
一个类可以有多个方法;
类的访问修饰符:1.默认的
2.私有的
3.共有的
4.受保护的
类的构造方法:创建一个对象的时候,至少调用一个构造方法。构造方法的名称必须与类同名。一个类可以有多个构造方法,各构造方法的参数必须各不相同。
类的this关键字:
类的this关键字用于区分当方法的参数变量与类的成员变量重名的情况
public class Dog{
public Dog(String name){
this.name=name;//方法参数变量与类的成员变量都叫name,故使用this关键字加以区分,this.name表示类的成员变量name
}
private String name;
}
今日一题:
初步代码:
package step1;
public class Yard {
float area=0.0;
float l=0.0;
double getPeterimeter(){
l=2*length+2*width;
return l;
}
double getAcreage(){
area=length*width;
return area;
}
}
发现问题:
src/step1/Yard.java:4: error: incompatible types: possible lossy conversion from double to float
float area=0.0;
^
src/step1/Yard.java:5: error: incompatible types: possible lossy conversion from double to float
float l=0.0;
^
src/step1/Yard.java:7: error: cannot find symbol
l=2*length+2*width;
^
symbol: variable length
location: class Yard
src/step1/Yard.java:7: error: cannot find symbol
l=2*length+2*width;
^
symbol: variable width
location: class Yard
src/step1/Yard.java:11: error: cannot find symbol
area=length*width;
^
symbol: variable length
location: class Yard
src/step1/Yard.java:11: error: cannot find symbol
area=length*width;
^
symbol: variable width
location: class Yard
src/step1/YardBuilding.java:9: error: constructor Yard in class Yard cannot be applied to given types;
Yard yard = new Yard(length, width);
^
required: no arguments
found: double,double
reason: actual and formal argument lists differ in length
src/step1/YardBuilding.java:10: error: cannot find symbol
System.out.print(String.valueOf(yard.getPerimeter()) + ' ' + String.valueOf(yard.getAcreage()));
^
symbol: method getPerimeter()
location: variable yard of type Yard
8 errors
改进代码:
package step1;
public class Yard {
Yard(double length, double width) { //构造方法
this.length = length;
this.width = width;
}
public double getPerimeter() { //返回周长
return (length + width) * 2;
}
public double getAcreage() { //返回面积
return length * width;
}
private double length; //成员变量(长度)
private double width; //成员变量(宽度)
}
运行成功!!!
今天的学习分享就到这里,谢谢大家。