学习java就要知道面向对象是什么,面向对象的入门

我们在学习java中,面向对象是我们必须要掌握的。
你不会面向对象,学什么java
我们先来了解一下什么是面向对象

面向对象的简介

面向对象其实是一种编程思想。
面向过程
遇到一个问题,亲力亲为的一步步解决他(小兵),典型代表语言:c
面向对象
遇到一个问题,找具有解决这个问题的对象,调用这个对象的方法(老板),典型代表java
简而言之:
面向对象三元素=类+对象+消息
面向对象三大特性
封装性(encapsulation)
继承性(inheritance)
多态性 (polymorphism)
这个三大特征我们下一个文章再讲
总的来说面向对象是一个编程的思想
我们来看下对象和类的关系

对象与类

什么是类呢?
什么是对象呢?
有人说对象就是男女朋友的意思。
在我们程序员中是不存在这个的
我们来看下在java中类和对象到底是什么

1.概念描述
:类是一个模板,它描述一类对象的行为和状态。
对象:是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
这种文字的就看起来很烦是不,其实我也不喜欢看文字的,我们来看图理解
在这里插入图片描述图中男孩女孩为类,而具体的每个人为该类的对象

类的结构

我们来具体看看类的结构是什么
1.类是JAVA程序得的基本组成单位,定义了对象的属性和方法,是具有共同属性和行为的对象的集合。
2.对象的实质:属性+行为。
3.类的基本结构:属性,方法,构造方法,内部类,块。属性是对数据的描述。方法是对象的行为。构造方法用于实例化对象。

方法的重载

在Java中,同一个类中的多个方法可以有相同的名字,只要它们的参数列表不同就可以,这被称为方法重载(method overloading)。
参数列表又叫参数签名,包括参数的类型、参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同。
重载是面向对象的一个基本特性。

话不多说我们看代码

public class Test03 {

	private void test() {
		System.out.println("你好");
	}
	private void test(int a) {
		System.out.println("睡觉");
	}
}

简单吧这个就是重载

static与this

this关键字:
this:代表当前的对象
this关键字主要有三个应用:
(1)this调用本类中的属性,也就是类中的成员变量;
(2)this调用本类中的其他方法;
(3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。

this主要有三个使用场合
1、全局环境
只要是在全局环境下运行this就是指顶层对象
2、构造函数(constructor)
构造函数中的this,指的是实例对象
3、对象的方法(函数)
对象的方法里包含this,this的指向就是方法运行时所在的对象,该方法赋值给另一个对象,就会改变this的指向。
来我们结合代码来理解

区分成员变量和局部变量
public class ThisDemo {
        public static void main(String[] args) {
            Student s=new Student("小明明",20);
            System.out.println(s);
        }
    }
    class Student{
        String name;
        int age;
        public Student(String name, int age) {
            //注:没有加this
            name = name;
            age = age;
        }
        @Override
        public String toString() {
            return "Student [ name=" + name + ", age=" + age +"]";
        }
    }
代表当前对象的
public static void main(String[] args) {
            Student s=new Student("小明明",20);
            System.out.println(s);
    }
    //为什么加入this后就可以区分呢?
   // 因为this当前代表的是s实例(对象)相当于
    s.name="小明明";
    s.age="20";
    //再可以理解如下
this.name=实例(对象).name="小明明"

Static关键字:

  1. static用于修饰成员变量和方法,这些成员变量及方法属于类而不属于实例。
  2. static可以修饰代码块,即静态代码块。静态代码块也属于类本身。
    3.以上的成员变量、方法和代码块在编译期间就已经存在了。
    4.由于static修饰的成员变量、方法及代码块属于类,因此其中不能使用当前类本身的内部实例this引用调用任何实例变量和实例方法,因为实例变量及方法都是在实例被创建之后才存在的。因此,如果要调用实例方法及变量则需要在其中创建实例然后调用。
    只需把static关键字放在定义之前,就可以把字段或方法定义为static
    代码看看
public class StaticTest{
     private static int i= 0;
    
    private static void fun(){
        System.out.println("this is static method");
}
}

静态代码块:静态代码块有static关键字加{}组成,静态代码块执行优先级高于main方法高于构造方法
案例:

public class StaticTest {

    public static void main(String[] args){
        System.out.println("this is main");
    }

    static {
        System.out.println("this is static coding block");
    }
}  

这里顺便提一下包机制

扫描二维码关注公众号,回复: 11249187 查看本文章

包机制

包机制是java中管理类的重要手段。开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理。包对于类,相当于文件夹对于文件的作用。

猜你喜欢

转载自blog.csdn.net/qq_43402310/article/details/106279245