Java面向对象
Java面向对象概述
什么是面向对象?
将功能的实现进行分化处理,例如某个方法只用来做时间的格式化,某个方法只用来处理字符串的切割等等。
我们只需要写一次方法,之后我们需要就进行调用,减少代码的重复性。
而这些我们封装在一个类中以后我们想要使用其方法时,直接调用即可,我们不再需要过度的去关注这个方法的实现。
面对对象有那些特征?
- 封装性: 所有内容对外部不可见
- 继承性: 将父类的功能继承下来并对其进行拓展
- 多态性: 如方法的重载,就是多态性的一种体现方式
类和对象
我们如何去定义一个类?
// 定义类的语法格式
修饰符 class 类名称 {
}
类中的属性和方法该如何定义?
在java中类中的属性和方法有两种
- 类属性和类方法
- 实例属性和实例方法
我们该如何区分呢?
以 static
修饰的方法和属性是类属性和类方法
未以staitc
修饰的方法和属性是实例属性和实例方法
示例如下:
public class Test {
// 实例属性
private int num;
// 类属性
private static int num1;
// 实例方法
public void test(){
}
// 类方法
public static void test1(){
}
}
类属性和类方法该如何调用呢?实例方法和实例属性又该怎么调用呢?
public class Test {
/*
在同一个类中如何访问类属性?
我们可以直接使用属性名即可
在同一个类中如何使用实例属性和实例方法?
不能在类方法中使用实例属性和实例方法。
但是可以在实例方法中使用静态属性和静态方法。
this.属性名 this.方法名
*/
// 实例属性
public int num;
// 类属性
public static int num1;
// 实例方法
public void test(){
// 在同一个类中调用实例属性
this.num = 1;
System.out.println(this.num);
// 在实例方法中调用静态方法
test1();
// 在实例方法中调用静态属性
num1 = 2;
System.out.println(num1);
System.out.println("实例方法----------");
}
// 类方法
public static void test1(){
System.out.println("类方法-------------");
}
}
// 不同类中调取类属性、类方法、实例属性、实例方法
public class Test1 {
public static void main(String[] args) {
// 不同类中 访问类属性
Test.num1 = 1;