类的定义
具有相同或相类似属性的一种集合体,是抽象的看不见摸不着的
通过类可以创建对象
语法格式
class 类名{
// 特征1
// 特征2
// 行为1
// 行为2
}
对象
对象是真实存在的具有多个属性值
一个类可以创建多个对象
一组对象或是一个对象抽象成一个类
使用new关键字创建一个或一组对象。
封装
将属性私有化,私有化的属性不能被其他类来访问和使用
同时又提供了公有的setter方法来给该私有属性设置值
在方法内部可以编写过滤和屏蔽代码,使得非法值无法进行赋值操作
方法相对于属性而言,可以编写额外的过滤代码,使得数据合法
优点:
提高程序的安全性
缺点:
代码量过大
eg:创建一个Student类,并将属性封装
public class Student {
//封装属性
private String name;
private int age;
private String address;
private String zipCode;
private String mobile;
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}
public void setAddress(String address){
this.address = address;
}
public void setZipCode(String zipCode){
this.zipCode = zipCode;
}
public void setMobile(String mobile){
this.mobile= mobile;
}
public String getPostAddress(){
return "address:\t" + address + "\nzipCode\t" +zipCode;
}
}
创建一个对象叫小明,从Student中调用属性
public class xiaoming {public static void main(String[] args) {
Student s = new Student();
s.setName("xiaoming");
s.setAge(13);
s.setAddress("xian");
s.setZipCode("723200");
s.setMobile("54264723467");
System.out.println(s.getPostAddress());
}
}
继承
理解(子承父业)
其中子类可以使用父类所定义的所有非私有的方法
使用extends关键字来表明前面的类是后面类的子类。
使用super关键字来调用父类中直接定义好的属性和方法。
eg:父类(其中定义了圆的半径,矩形的长宽,而且定义了算圆和矩形周长和面积的方法)
public class Shape {
private double banjing;
int chang;
int kuan;
public void setR(double bangjing) {
this.banjing=bangjing;
}
public void zhouchang1(){
double c;
c=Math.PI*2*banjing;
System.out.println("圆的周长:" + c);
}
public void mianji1(){
double s;
s=Math.PI*banjing*banjing;
System.out.println("圆的面积:" + s);
}
public void zhouchang2(){
int c;
c=2*(chang + kuan);
System.out.println("周长是:" + c);
}
public void mianji2(){
int s;
s=chang*kuan;
System.out.println("面积是:" + s);
}
}
子类:圆(通过super关键字直接调用算圆周长和面积的方法)
public class Circle extends Shape{
public void zhouchang1(){
super.zhouchang1();
}
public void mianji(){
super.mianji1();
}
}
子类:矩形(调用父类中的方法计算周长和面积)
public class Rect extends Shape {
public void zhouchang2(){
super.zhouchang2();
}
public void mianji(){
super.mianji2();
}
}
public class textshape {
public static void main(String[] args) {
Circle r =new Circle();
r.setR(3);
r.zhouchang1();
r.mianji1();
Rect l = new Rect();
l.chang=6;
l.kuan=5;
l.zhouchang2();
l.mianji2();
}
}