浅谈Java面向对象
类
在Java中,类可看做是一个数据类型,它包含了数据和方法。数据称为类的属性,而方法则是类的行为。
在代码实现中,通过使用关键字“class”来定义一个类,类的命名应遵循驼峰命名法。下面是一个简单的类的定义示例:
public class Person {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
}
封装
封装是面向对象编程的一种重要特性,它是指将数据和方法进行封装,隐藏数据的具体实现方式,仅对外提供必要的公共接口。
在Java中,可以通过访问修饰符来控制类的数据与方法的访问权限。常用的访问修饰符有public、protected、default和private。
其中,public修饰符表示该成员可以被所有类访问,protected修饰符表示该成员可以被本类、子类和同一个包中的类访问,default修饰符表示该成员可以被本类、同一个包中的类访问,而private修饰符表示该成员只能被本类访问。
在上面定义的Person类中,name和age属性被定义成了private私有修饰符,只有该类内部的方法才能访问这些属性值。而将setter和getter方法定义为public,可以在类外部访问这些属性值。
this
在Java中,this关键字表示当前对象的引用,它指向正在调用该方法的对象。
在构造方法中,this关键字可以用于调用当前类的其它构造方法,以避免重复代码的编写。如下面的例子所示:
public class MyClass {
private String name;
private int age;
public MyClass(String name) {
this(name, 18);
}
public MyClass(String name, int age) {
this.name = name;
this.age = age;
}
}
在上面的代码中,MyClass类有两个构造方法,当调用第一个构造方法时,它会调用第二个构造方法,并将age参数的默认值设为18。
构造方法
在创建一个对象时,构造方法会被调用,用于初始化对象的属性值。在Java中,构造方法的命名必须与类名相同,不能有返回值,可以有参数。
如下面的代码所示,Person类有一个有参数的构造方法,用于初始化name和age属性的值。
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
当创建一个Person对象时,可以在括号内传入相应的参数,如下所示:
Person person = new Person("张三", 20);
在该示例中,会调用Person类的有参数的构造方法,将“张三”和20分别赋值给name和age属性。
示例说明
示例1:定义一个Rectangle类,实现长方形的面积和周长计算功能。
public class Rectangle {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
public double area() {
return this.width * this.height;
}
public double perimeter() {
return 2 * (this.width + this.height);
}
}
在上面的代码中,Rectangle类有两个属性width和height,分别表示长方形的宽和高。它有一个有参数的构造方法,用于初始化这两个属性值。它也有两个方法area和perimeter,分别用于计算长方形的面积和周长。
示例2:定义一个Student类,包含姓名、年龄、性别和学号等属性,实现这些属性的getter和setter方法。
public class Student {
private String name;
private int age;
private char gender;
private String id;
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setGender(char gender) {
this.gender = gender;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public char getGender() {
return this.gender;
}
public String getId() {
return this.id;
}
}
在上面的代码中,Student类有四个属性name、age、gender和id,分别表示学生的姓名、年龄、性别和学号。它有对应的setter和getter方法,用于设置和获取这些属性值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈java面向对象(类,封装,this,构造方法) - Python技术站