Java面向对象(OOP)

Java面向对象(OOP)

特点

  • 封装
  • 继承
  • 多态

基本概念

类(Class)

  • 同一种对象抽象概括

  • 完整的类

    • 静态属性:变量
    • 动态行为:方法
    class Student{    // 类名:Student
        // 静态属性 —— Fields
        name: String;  // 成员变量
        height: double;
        weight: double;
        
        // 动态行为 —— 方法
        walk(): void;
        eat(): void;
    }
    
    • 例:

      // Student.java
      public Student{
          public String name;  // 成员变量
          public double height;
          public double weight;
          
          public void walk(){  // 方法
              System.out.println("在走路");
          }
          public void eat(){
              System.out.println("在吃饭");
          }
      }
      

对象(Object)

  • 具体的某个事物

类的定义

创建对象

  • 声明格式:引用类型变量用来给对象取名

    类名 变量名;

    // Main.java
    public class Main {
    	public static void main(String[] args) {
    	    Student s1 = new Student();  // 在内存里创建一个Student对象,创建一个s1引用变量,并将s1指向新建的Student对象
            s1.height = 180;
            s1.weight = 100;
            System.out.println(s1.height);
            
    	    Student s2 = new Student();
            s2.height = 170;
            s2.weight = 90;
            System.out.println(s2.wdight);
            s1.walk();
            s2.eat();
    	}
    }
    
    

Java为成员变量赋默认值

  • 整形int0
  • 浮点型double/float0.0
  • 布尔型Booleanfalse
  • 引用类型 :null(空)

构造方法

构造方法

  • 构造方法的作用是创建对象(初始化对象)

    Student s1 = new Student(12, "Jack");  // 使用new操作符调用构造方法创建对象
    Student s2 = new Student();
    
    class Student{
        int id;
        String name;
        public Student(int id, String name){  // 有参构造方法
            this.id = id;
            this.name = name;
        }
        public Student(){  // 无参构造方法
            
        }
    }
    
    1. 构造方法必须和所在类名称相同。
    2. 构造方法没有返回值类型,甚至没有void
    3. 构造方法是在创建一个对象时由new操作符调用的。
  • 默认无参构造方法(编译器)

    // 程序员没有定义构造方法,编译器默认给对象创建一个无参构造方法
    
  • 构造方法重载

    方法名相同,参数列表不同

Java常见类

Date类

// test_2.java
import java.util.Date;;
public class test_2 {
	public static void main(String[] args) {
		Date d = new Date();
		System.out.println(d);
	}
}

Random类

// test_3.java
import java.util.Random;
public class test_3 {
	public static void main(String[] args) {
		Random r = new Random();
		System.out.println(r.nextInt(10));
	}
}

static关键字

static作用

  • 修饰成员变量常量方法以及代码块

静态成员变量

class Student{
    static String name = "Jack";
}
System.out.println(Student.name);  // 可以通过类名访问静态成员变量

静态方法

class Student{
    static String name = "Jack";
    static void foo(){
        System.out.println("Hello World!!!");
    }
}
Student.foo();    // 可以通过类名调用静态方法
  • 静态方法只能访问静态成员变量,不能访问非静态成员变量
发布了16 篇原创文章 · 获赞 17 · 访问量 2070

猜你喜欢

转载自blog.csdn.net/weixin_44129085/article/details/102827659