面向对象
Make efforts everyday
基于我身边的同学很多人刚接触面向对象,由此写一篇文章谈谈我对面向对象的理解(注:没有具体讲完全是按照老师的进度用能听懂的语言表达)。
java面向对象,书本上太杂,而老师的进度也快,如果想要写好一个完整的类(class),就必须知道一个类的构成。
一个类的构成必须是成员变量和方法
成员变量:类的属性(圆的属性是半径r)
方法:1.构造方法(new 的时候体现出来)
2.其他方法
例子1 圆类
public class Circle { private double r;//成员变量 private的意思是私有化,在其他类中不可调用 public Circle() {//空参构造 可以Circle c1=new Circle();此时圆c1的半径为0. r=0; } public Circle(double r) {//有参构造 可以Circle c2=new Circle(2);此时圆c2半径是2,与空参不一样的是,这个有参构造可以传参 this.r = r; } public Circle(Circle c) {//拷贝构造 了解即可,后面用不太到。Circle c3=new Circle(c1); 中间可以传一个圆,并将圆的半径赋给新圆 r=c.getR(); } public double getR() {//get方法 由于成员变量是private类型的,所以在外部无法用c1.r进行调用,所以要创建一个get方法在外部类得到半径,用法:c1.getR() return r; } public void setR(double r) {//set方法 由于成员变量是private类型,在外部也不可以进行c1.r=2进行赋值,所以创建一个set方法进行半径赋值,用法:c1.setR() this.r = r; } //下面可以添加一下其他方法,用的到的,如求圆的面积,周长等。 }
尝试写一个矩形类,并加一些其他方法,求矩形面积和周长。
例子2 员工类(下面看一个员工类的例子,步骤,确定成员变量,名字,年龄,确定方法,无参方法,有参方法,getset方法)
public class Staff { private String name;//成员变量 private int age; public Staff() {//空参构造,默认名字为空字符串,年龄为0 name=""; age=0; } public Staff(String name, int age) {//有参构造,可以赋值 super(); this.name = name; this.age = age; } public String getName() {//get方法,获得名字 return name; } public void setName(String name) {//set方法,设置名字 this.name = name; } public int getAge() {//get方法,设置年龄 return age; } public void setAge(int age) {//set方法,设置年龄 this.age = age; } }
尝试写一个学生类,成员变量有名字,年龄,id,住址,并尝试写一个打印方法,打印类中的名字,年龄,id,住址