欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面向对象 部分知识点

程序员文章站 2022-07-12 15:38:11
...

面向对象 部分知识点

今天对很多人来说是一个非常重要的日子——七夕。作为一个有尊严的单身狗,我决定复习面向对

象,在学习的海洋中找到我真正的归属,有一些小知识点希望可以和众多单身狗分享。

这是一个图骗

java中,

类 :一个代码的载体,一个数据类型 一个图纸

对象: 某个类在内存中存在的个体/实例/对象

public static void main(String[] args){
    Beauty b = new Beauty();
    b1.add(2);
    int sum = b1.add2(2,3);
}
public class Beauty{
    //成员变量
    String name;
    int age;
    public void add(int a){
        System.out.println(a);
    }
    public int add2(int b,int c){
        int c = a+b;
        return c;
    }
}

1.成员方法

格式:

访问修饰符(public) 修饰符 返回值类型 方法名(参数列表(形参:定义方法时的参数)){

​ 方法

​ return xxx;

}

实参:实际使用

main方法:一种特殊的方法

构造方法:方法名和类名一样,没有返回值类型,void也不写

作用:构建创造对象 和new一起使用

类中无手写方法,提供无参构造 手写有参构造方法 无参不提供

构造参数 为成员变量赋值的参数

方法的重载:同一个类中,方法名一致,参数列表不一致的重名方法现象。

方法的重写:返回值、方法名、参数列表必须与父类一致,访问修饰符要大于等于父类。

public class Beauty {
	//成员变量;
	String name;
	int age;
	//打印你是单身狗;
	public void print(){
		System.out.println("你是单身狗");
	}
	//计算指定两个整数的和并打印;
	public void add2int(int a,int b){
		System.out.println(a+b);
	}
	//计算指定两个整数的和并把结果返回;
	public int add2(int a,int b){
		int c = a+b;
		return c;
	}
	//设计方法:  计算指定的一个整数和一个double小数的和 并返回结果
	public double add21(int a,double b){
		double c = a+b;
		return c;
	}
	//设计方法:  计算指定的一个double小数和一个整数的和 并返回结果
	public double add21(double a,int b){
		double c = a+b;
		return c;
	}
	//设计方法:  打印指定的一句话 并循环打印10次.
	public void print10(String Str){
		for(int i = 1;i<=10;i++){
			System.out.println(Str);
		}
	}
	public void print20(Beauty be){
		for (int i = 0; i < 10; i++) {
			System.out.println(be.name);
		}
	}
}

继承关系中,子类的创建过程

  • 父类先执行,子类后执行
  • 构造代码块早于构造方法

2.this和super用法

1.this的两种用法:

1.使用this关键字,指代当前调用的方法

成员变量:堆里 对象空间里 生命周期跟随对象

方法里的变量(参数或方法内部声明的)是局部变量 生命周期跟随局部

类变量 类的一个属性 所有对象共享 生命周期跟随类 方法区

public class Worker{
    
    String name;
    
    public void show(String name){
        System.out.println("方法的参数或方法里声明的名字是:"+name);//跳
        //1.使用this关键字,指代当前调用的方法
        System.out.println("worker的名字是:"+this.name);//唱
        //在成员方法里,this指代当期对象(当前方法的调用者)
        this.say();//this可以省略
    }
    
    public void rapper(){
        System.out.println("篮球");
    }
    
    public static void main(String[] args){
        Worker w = new Worker();
        w.name = "唱";
        w.show("跳");
    }
}

2.this()指代本类中的其他构造方法,用在另外一个构造方法的首行

public Worker(String name,int age){
    this.name = name;
    this.age = age
}
public Worker(String name,int age,String sex,String display){
    this(name,age);//调用上面的方法
    this.sex = sex;
    this.display = display;
}

2.super的两种用法

  1. 用在子类中,指代父类的引用
  2. 调用父类的构造方法 为成员变量初始化 这种用法要用在子类构造方法的首行

this和super不能同时存在

3.static 修饰符

可以修饰 方法/变量/类 表示 共享/静态的概念

1.修饰变量(类变量):

  • 变量不出现在对象的堆空间中,该类所有对象公用这个变量

  • 类本身所有 通过 静态时间 类名 方法名调用

  • 跟随类.class文件一起进入方法区内存

局部变量:局部内的一个数据,生命周期跟随局部 栈;
成员变量:对象内的一个数据,生命周期跟随对象 堆;
类变量:类的一个属性,所有对象共享 生命周期跟随类 方法区;

2.修饰方法 :

  • 静态方法内部 能调用本类的静态变量和静态方法 不能调用成员变量和方法(只能由对象来调用)

  • 类中的构造代码块每new对象前都执行 且在构造方法前执行

  • 静态代码块 只执行一次且最早 把程序一启动就需要的文件放在里面

public class Student {
    //static修饰变量
	static String projector = "单身狗";
	
	String name;
	int age;
	String sex;
	
	public void showSelf(){
		System.out.println(this.name);
	}
	//static修饰方法
	public static void showSome(){
		System.out.println(Student.projector);
		System.out.println("hh");
	}
	public static void main(String[] args){
		Student s1 = new Student();
		System.out.println(Student.projector);
		System.out.println(s1.projector);
	}
}

看完面向之后,是不是感觉自己可以找到对象了?
不可能哒,不要天真了!!!