Java_____类和对象上

1.类:抽象概念,表示一类事物的总称

人类:属性——名字 年龄 性别
行为——吃 穿 睡
类统称:表示一类事物所具有的共同特征与行为
对象:类的一个实例
在这里插入图片描述

面向对象:c++ Java 一切皆对象 方便开发,松耦合
面向过程:c 所有事情都是一个个独立的方法 ,性能较高(嵌入式软件:单片机)

如何定义一个类

class Person{
    
    
}

人类{
若干属性…
若干方法/行为
}
注意:1.任何一个源文件有且只有一个主类(public class)并且源文件名称需要和主类保持一致
在这里插入图片描述

2.类的命名

类的命名源文件的命名采用大驼峰命名法:所有单词的首字母全大写
变量的命名使用小驼峰命名法

class Person;
class ChinaPerson;

3.类的实例化

一个源文件中可以有若干个类(普通类)0——n
定义一个类只是规定了一类对象所具备的属性和行为
有了类之后,可以根据类来产生对象(类的实例化
在这里插入图片描述

4.关键字new来产生对象

主方法main 存在主类之中
在这里插入图片描述

5.类中包含的内容

类中包含的内容:属性,方法/行为,类,接口,代码块
类中的属性——成员变量或者属性
类中的方法——成员放法或实例方法

问题1:如何通过对象来使用类中的属性

在这里插入图片描述
要通过引用数据类型访问属性和方法 属于**“."**操作符

问题2:关于属性默认值

基本数据类型:默认值
类中的成员变量与对象有关,当有对象产生时,才会开辟内存,分配空间

//类来产生对象
public class Test {
    
    
    //成员变量(与对象有关)
    int a;
    public static void main(String[] args) {
    
    
        //类的实例化——>产生一个Person类的对象
       /* Person per = new person();
        per.name = "张三";
        per.age = 18;
        per.sex = "男";*/

        Test 狗剩 = new Test();
      //  类  给这个对象起的名字  = 类的对象
        System.out.println(狗剩.a);
    }
}

在这里插入图片描述

6.引用数据类型的默认值:null

public class Test {
    
    
    //成员变量(与对象有关)
    int a;
    public static void main(String[] args) {
    
    
        //类的实例化——>产生一个Person类的对象
       Person per = new Person();
       /* per.name = "张三";
        per.age = 18;
        per.sex = "男";*/

      /*  Test 狗剩 = new Test();
      //  类  给这个对象起的名字  = 类的对象*/
        System.out.println(per.name);
    }
}

在这里插入图片描述

7.可以在定义的时候给属性赋值

//class 定义一个类
class Person{
    
    
    //属性
    String name = "张三";
    int age;
    String sex;
    //行为
    void eat(){
    
    };
    void sleep(){
    
    };

}
//类来产生对象
public class Test {
    
    
    //成员变量(与对象有关)
    int a;
    public static void main(String[] args) {
    
    
        //类的实例化——>产生一个Person类的对象
       Person per = new Person();
       /* per.name = "张三";
        per.age = 18;
        per.sex = "男";*/

      /*  Test 狗剩 = new Test();
      //  类  给这个对象起的名字  = 类的对象*/
        System.out.println(per.name);
    }
}

在这里插入图片描述

8.类中的成员方法

//class 定义一个类
class Person{
    
    
    //属性
    int age;
    String sex;
    //行为
    void eat(){
    
    };
    void sleep(){
    
    };
    void show(){
    
    
        System.out.println("My name is:"+name+",My age is:"+age);
    }

}
//类来产生对象
public class Test {
    
    
    //成员变量(与对象有关)
    int a;
    public static void main(String[] args) {
    
    
        //类的实例化——>产生一个Person类的对象
       Person per = new Person();
       Person per1 = new Person();
       per.name = "张三";
        per.age = 20;
       per1.name = "柳飘飘";
       per1.age = 101;
      
        per.show();
        per1.show();
    }
}

在这里插入图片描述
总结:在类中的成员变量以及成员方法与对象强相关,有对象之后才能使用!!!

2.static关键字

static{
    
    
1.修饰变量(类属性)
2.修饰方法(类方法)
3.修饰代码块(静态块)
4.修饰内部类
}

1.static修饰属性—>类属性

当一个类中的属性,该类的所有对象值都相同(eg:国籍),此时这个属性不在与具体的对象相关,而与所关联的类相关,属性使用static修饰,表示类属性,在JVM方法区存储。
方法区:存储所有静态变量和常量
static

class Person{
    
    
    //类属性
    static String country;
    }
//类来产生对象
public class Test {
    
    
    //成员变量(与对象有关)
    int a;
    public static void main(String[] args) {
    
    
        //类的实例化——>产生一个Person类的对象
       Person per = new Person();
       Person per1 = new Person();
       per.country = "台湾";

        System.out.println(per1.country);

    }
}

在这里插入图片描述

2.static修饰的变量称为类的静态变量或类属性

直接使用类名称来访问,不推荐使用对象访问
在这里插入图片描述

3.Java中static关键字一定不能出现在方法中

在这里插入图片描述

4.常量:一旦定义后就无法修改的变量,使用final关键字修饰,一般与static搭配使用

//class 定义一个类
class Person{
    
    
    //常量,定义时必须初始化,并且之后无法修改
    final static String COUNTYR = "中国";
    }
public class Test {
    
    
    public static void main(String[] args) {
    
    
        System.out.println(Person.COUNTYR);
    }
}

在这里插入图片描述
常量的命名规则:
所有单词全部大写!!!多个单词可以以_分隔

5.静态方法

类中使用static修饰方法-----类方法(与对象无关)
在成员方法中能否调用静态方法?Yes
类 对象
在静态方法中能否调用成员方法?No
对象 类
看见static与对象无关,与类本身有关
被static修饰的属性存储在JVM方法区,所有对象共享此变量(该类中的所有对象有且只有一个)

注:在*.java有且只有一个主类(public class)可以有若干个普通类
主类名称必须与源文件名保持一致

猜你喜欢

转载自blog.csdn.net/biteqq/article/details/122737412