Java学习笔记——面向对象

一、什么是面向对象

      面向对象编程(Object-Oriented Programming, OOP)
      面向对象编程的三大特性: 封装、继承、多态

二、方法调用

1.静态方法调用

类名+方法名

public class Student{
   
	//静态方法
	public static void say(){
   
		System.out.println("学生在讲话");
	}
	public static void main(String[] args){
   
		Student.say();
		say();
	}
}

      注意:因为在同一个类下,所以也可以直接写方法名。

2.非静态方法调用

实例化类+方法名

public class Student{
   
	//非静态方法
	public void say(){
   
		System.out.println("学生在讲话");
	}
	public static void main(String[] args){
   
		Student student = new Student();
		student.say();
	}
}

3.补充:static关键词

1>带有static关键词的方法或者变量可以直接通过类名+方法名/变量名获取

public class Demo01 {
   
    private static String name = "Lihua";
    private double score = 88.8;

    public static void main(String[] args) {
   
        Demo01 demo01 = new Demo01();
        System.out.println(Demo01.name);
        System.out.println(demo01.name);
        System.out.println(demo01.score);
    }
}

2>带有static关键词的方法或变量是与类一起加载的

public class Demo02 {
   

    public static void a(){
   

    }
    
    public void b(){
   
        a();
    }
}

       因为方法a()是和类一起加载的,所以方法b()里可以直接调用a()

public class Demo02 {
   

    public static void a(){
   
    	b();  //报错
    }
    
    public void b(){
   
       
    }
}

      因为方法b()在类实例化之后才存在,所以在方法a()里调用方法b()会报错。
3>静态代码块只执行一次

public class Demo03 {
   
    //2 作用:赋初值
    {
   
        System.out.println("匿名代码块");
    }
    //1 只执行一次
    static{
   
        System.out.println("静态代码块");
    }

    //3 
    public Demo03(){
   
        System.out.println("构造方法");
    }
    public static void main(String[] args) {
   
        new Demo03();
        System.out.println("------------------");
        new Demo03();
    }
}

输出:

静态代码块
匿名代码块        
构造方法
------------------
匿名代码块        
构造方法

4>静态导入包

import static java.lang.Math.random;
import static java.lang.Math.PI;
public class Demo04 {
   
    
    public static void main(String[] args) {
   
        System.out.println(random()); //0.13545342469787336
        System.out.println(PI);       //3.141592653589793
    }
}

三、Java是值传递

1.一个方法不能修改一个基本数据类型的参数

public class Demo01 {
   
    
    public static void change(int a ){
   
        a = 10;
    }

    public static void main(String[] args) {
   
        int a = 1;
        System.out.println(a);  //1
        change(a);
        System.out.println

你可能感兴趣的:(java,java,学习,jvm)