Java——类和对象

一、面向对象

       java是一种面向对象语言。面向对象、面向过程都是一种解决问题地思想,相比面向过程,面向对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题过程中的行为。面向对象具有三大特性:封装、继承、多态(注:不能说这是java的三大特性,因为C++、Phython也是面向对象语言)。

二、类和对象的创建

        类是对象的抽象,对象是类的具体表现。

        我们通过class来命名一个类

public class Dog {
    public String name;
    public int age; 
    public String color;
    public void bark(){
        System.out.println(name +" 在汪汪叫");
    }
    public void eat(){
        System.out.println(name +" 在吃东西");
    }
}

           然后我们通过new来实例化,创建出对象,这些对象都有相同的成员变量,我们可以进行赋值,也可以调用成员方法。(类体内声明的变量称为成员变量,类体内声明的方法称为成员方法)


public class Test {
    public static void main(String[] args) {
        Dog dog1 = new Dog();
        Dog dog2 = new Dog();
        dog1.name = "旺财";
        dog2.name = "二哈";
        dog1.bark();
        dog2.bark();

    }
}

三、this关键字

        当我们想设计一个能初始化对象的成员方法时

​
   public void setDog(String name, int age, String color){
        name = name;
        age = age;
        color = color;
    }

​public class Test {
    public static void main(String[] args) {
        Dog dog1 = new Dog();

        dog1.setDog("旺财", 5, "黄色");
        System.out.println(dog1.name +" " + dog1.age +" " + dog1.color);

    }
}

        此时的代码并不能成功地初始化,因为方法内部的变量都别视为方法提供的局部变量。

        使用this关键字,就可以调用成员变量。

 public void setDog(String name, int age, String color){
        this.name = name;
        this.age = age;
        this.color = color;
    }

        方法同理,在类中使用this.方法也可以调用成员方法。

四、构造方法

        1.构造方法是一个没有返回值,方法名与类名相同的方法。

        2.构造方法至少有一个,java会自带一个无参数,无具体实现的构造方法。

        3.构造方法在创建对象的同时会被调用,我们可以把它设计成一个初始化变量的方法。这也意味着如果构造方法是有参数的,我们在创建对象时要提供参数。

class Dog {
    public String name;
    public int age;
    public String color;
    Dog(String name, int age, String color){
        this.name = name;
        this.age = age;
        this.color = color;
    }
}

public class Test {
    public static void main(String[] args) {
        Dog dog1 = new Dog("旺财", 5, "黄色");

        System.out.println(dog1.name +" " + dog1.age +" " + dog1.color);
    }
}

        4.我们可以用this(),调用当前类的其他构造方法,但是这个this语句必须放在当前方法的第一行。

Dog(String name, int age, String color){
        this.name = name;
        this.age = age;
        this.color = color;
    }
Dog(String name){
        this(name, 0, null);
}

五、封装

         1.包

                在java中, 为了更好的管理,可以将几个类放在一起,称为一个包(类似于一个文件夹中有几个相似的文件)。

                我们通过import 关键字来导入包,从而实现包中的方法,java自身提供了一些类,如Date类,那我们就通过import java.util.Date来导入这个类。

        2.访问权限        

        java通过上面四种访问权限符来设置访问权限,如

public class Dog {
    public String name;
    public int age;
    public String color;
    
    private double weight;
}

        weight变量在经过private修饰后,就不能在其他的类中使用。

        这样也就实现了java语言的封装。

六、static成员变量

        static修饰的变量不属于对象,存储在方法区里,因此不能通过对象名来访问(不会报错,但是会报警告),应该通过类名访问。

        

七、static成员方法

        static静态方法内部,不能使用非静态的成员,也不能有this

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值