JAVA面向对象编程—(上)

举报
Aileen_0v0 发表于 2024/02/10 14:08:54 2024/02/10
【摘要】 ​​🌈个人主页: Aileen_0v0 🔥系列专栏:PYTHON学习系列专栏 💫个人格言:"没有罗马,那就自己创造罗马~"目录面向对象的特征及理解  new  Static Summary: 面向对象的特征及理解 面试题:oop的三大特征是什么?  ---> 封装,继承,多态类,对象是什么?类是自定义类型, 对象是实体通俗的讲类相当于建房子的图纸,对象相当于通过图纸建出来的所有房子 ​...

🌈个人主页: Aileen_0v0
🔥系列专栏:PYTHON学习系列专栏
💫个人格言:"没有罗马,那就自己创造罗马~"


目录

面向对象的特征及理解 

new 

Static

Summary:


面向对象的特征及理解 

面试题:oop的三大特征是什么?  ---> 封装,继承,多态

类,对象是什么?

类是自定义类型, 对象是实体

通俗的讲类相当于建房子的图纸,对象相当于通过图纸建出来的所有房子 

通过一个类,可以产生多个对象

面向对象: 找对象 创对象  使用对象 

面向对象:注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将功能实现连接起来
面向过程: 1.把冰箱打开 2.把大象放入 3冰箱关起来

面向对象:打开冰箱,储存,关闭都是对冰箱的操作,是冰箱的行为。冰箱就是一个对象,所以只要操作冰箱所具备的功能,都要定义在冰箱中

package Test;


/**

* 访问修饰限定符:

* public: + 公有的

* private: - 私有的

* protected: 受保护的

* 什么都不写 : 默认权限 -> 包访问权限

*/


class Person{

    //字段 -> 成员变量 : 定义在方法外边 类 的 里面

    //实例成员变量: 在对象Person里面

    //实例化没有初始化 默认值为对应的0值.-> (1.引用类型默认为null 2.简单类型默认为0)

    //我们也可以对实例成员变量进行赋值

    //char -> "\u0000"(空类型) boolean -> false

    public String name = "lin";

    public int age = 18;

    

//    public char ch;

//    public boolean flg;

    

    //静态成员变量 不属于对象 属于类 ---有static 修饰

    public static int size = 100;

    //方法 -> 行为 eat 和 sleep --- 实例成员方法

    public void eat() {

        int a = 10 ; //局部变量 --- 使用前需要初始化

        System.out.println("eat()!" );

    }

    

    public void sleep() {

        System.out.println("sleep()");

    }

    

    //静态成员方法

    public static void func1() {

        System.out.println("static::func1()");

    }

    

}

public class TestDemo{

    public static void main(String[] args) {

        //如何访问静态成员方法 ,跟静态成员变量类似通过类名访问

        Person.func1();

    }

    

    public static void main4(String[] args) {

        //如何访问实例成员方法?

        //跟成员变量类似,也需要创建一个对象进行访问

        Person per = new Person();

        per.eat();

        per.sleep();

    }

    public static void main3(String[] args) {

        //如何访问静态的数据成员?

        //不需要new一个对象,直接通过类名就可以访问了

        // 类名.静态成员变量

        System.out.println(Person.size);

        

    }

    public static void main2(String[] args) {

        Person per = new Person();

        //如何访问对象当中的实例成员变量?

        //操作符: 点号 对象的引用 . 成员变量

        System.out.println(per.name);

        System.out.println(per.age);

        

//        System.out.println(per.ch);

//        System.out.println(per.flg);

    }

    public static void main1(String[] args) {

        //实例化一个对象 通过关键字 new

        Person person1 = new Person();

        Person person2 = new Person();

        Person person3 = new Person();

        Person person4 = new Person();

    }

}

new 

注意:

new关键字用于创建一个对象的实例

使用 . 来访问对象中的属性和方法

同一个类可以创建多个实例

字段/属性/成员变量
在类中,但是方法外部定义的变量.这样的变量我们称为“字段”或“属性”或“成员变量"三种称呼都可以一般不会严格区分).
用于描述一个类中包含哪些数据

使用 . 访问对象的字段.
“访问”既包含读,也包含写
对于一个对象的字段如果没有显式设置初始值,那么会被设置一个默认的初值
默认值规则:
。对于各种数字类型,默认值为 0.
。对于 boolean 类型,默认值为 false.
。对于用类型(String,Array, 以及自定制类), 默认值为 null 

认识 null
null 在Java 中为“空用",表示不引用任何对象,类似于C语言中的空指针如果对 null 进行,操作就会引发异常 

控制台运行结果:

初始化后:

利用对象.变量名进行变量数据的修改

 对于static来说,要访问静态成员方法可以利用:类名.方法名

静态方法内部不能够访问非静态的数据成员

Static

如果在任何方法上应用static 关键字,此方法称为静态方法
1.静态方法属于类,而不属于类的对象
2.可以直接调用静态方法,而无需创建类的实例。
3.静态方法可以访问静态数据成员,并可以更改静态数据成员的值

总结: 静态有限制,非静态没有限制

         静态方法不能直接使用非静态数据成员或调用非静态方法(非静态数据成员和方法                   是和实例相关的)

         曾经写的方法为了简单,都统一加上了 static.但实际上一个方法具体要不要带          static,都需要是情形而定
         main 方法为 static 方法 

package Test;


class Student{

    public int age;//实例变量

    public String name;//实例变量

    public String sex; //实例变量

    public static int count;//类变量,也叫静态变量

    public final int size = 10;

//被final修饰局部变量的用途 保护局部变量的值 一旦将局部变量声明为final,它的值将被保护起来,不能被无意间或恶意地更改

    public static final int COUNT = 99;


public class TestDemo1 {

    public static void main(String[] args) {

        Student stu = new Student();//person为对象的引用

        stu.age = 10;

//        stu.count = 100;

        System.out.println(stu.age);

//        System.out.println(stu.count);


    }


}

}

 

Summary:

        这部分介绍了类和对象的概念,以及方法和属性 ,然后我们可以通过关键字new创建对象

        Java的变量包括(1.实例成员量,2.静态成员变量-有static修饰) ,

        方法包括(1.静态成员方法,2.实例成员方法),

        对于静态变量和方法可以通过类名去访问,而实例则需要创建对象,然后通过对象访问

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。