javaSE之类和对象(1)

javaSE之类和对象(1)

🍓🍓

一丶初识面向对象

面向对象的概念

🍁🍁通俗的理解就是把我们看到的事物都当成一个对象,每个对象都有自己的属性和用途,比如一个冰箱,它的属性就是高度,宽度,容量,它的方法就是,制冷,保鲜等。再比如一头大象,它的属性就是重量,高度等,它的方法就是吃东西或者被装进冰箱等。面向对象编程就是把对象与对象之间的交互与联系表示出来,达到我们想要的效果,再比如想要把大象装进冰箱,首先我们要有两个对象,一个是冰箱一个是大象,通过冰箱的冷藏方法和大象的被装进冰箱的方法之间的交互完成的。

二丶类和对象

1.类

📣📣类:类就是图纸,我们想要得到对象,就需要先构造一个图纸作为模板,然后通过图纸,来获得对象的实例。其中图纸的内容就是属性丶方法丶代码块等.

下面我们如果定义一个类

class People{
    int height = 160;
    double weight =65;
    public void eat(){
        System.out.println("吃饭");
    }
}

其中class就是定义一个类的标志,people就是这个类的名字,定义在{}内部的height和weight就是 这个的类属性,eat()就是这个类的方法.

2.对象

🌲🌲对象:对象就是将图纸上的内容,给造出来,得到的具体个体,抽象到java语言中,也就是通过类得到一个实例体,我们可以真正的使用这个实例的方法和属性,并且可以修改

public static void main(String[] args) {
    People pp = new People();//此处就是实例对象,通过new来得到,pp就是这个对象的名字,People就是这个对象得类
    System.out.println(pp.height);
    System.out.println(pp.weight);
    pp.eat();//使用对象的方法和属性,都是通过'.'的操作来实现
}

对象的实例化,我们可以在类里面进行,也可以在方法里面进行,这里没有限制.

3.值得注意的是:

1.一个类可以实例化多个对象

2.实例化得到的对象会占据实际意义上的物理空间

3.实例化得到的对象,不是同一个对象,即使属性方法完全一样,但是在物理空间中也是两个物体,可以理解为双胞胎或者多胞胎.他们在计算机中占据的地址也是不相同的

4.没有定义静态属性或者静态方法,不能直接操作类,一定要先实例化

三丶类的成员

1.字段/属性/成员变量

📧📧上文我们讲的属性,也可以被称作字段或者成员变量,一般不会严格区分.是用来描述类中包含了哪些属性

1.这里的属性不仅可以包含基本数据类型也可以包含引用数据类型

2.对于一般的属性,我们可以赋值,也可以不赋值.但是比如int类型,不赋值就默认为1,引用型数据类型,默认为null

3.当默认为null的引用型数据出现时,我们要特别注意,如果不小心使用了就会出现空指针异常的错误

class Person {
    public String name;
    public int age;
}
class Test {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person.name.length());   // 获取字符串长度
   }
}
// 执行结果
Exception in thread "main" java.lang.NullPointerException at Test.main(Test.java:9)

4.如果对于在前面添加final修饰的变量,我们就必须要赋值,因为此时这个变量就作为一个常量存在了

2.方法

🍉 🍉 用于描述一个对象的行为,此时我们讲的都是一般方法

方法的构成:

权限修饰符 返回值 方法名(参数) 抛出异常{

方法体;

}

class Person {
    public int age = 18;
    public String name = "张三";
    
    public void show() {
   System.out.println("我叫" + name + ", 今年" + age + "岁");
   }
}
class Test {
    public static void main(String[] args) {
        Person person = new Person();
        person.show();
   }
}
// 执行结果
我叫张三, 今年18岁

对于同一个类创造出的方法,在不同的实例中也是会有所改变的,只需要改变属性,就能改变方法的结果

Person person2 = new Person();
person2.name = "李四";
person2.age = 20;
person2.show()
    
// 执行结果
我叫李四, 今年20
3.static关键字

🌈🌈static关键字是我们常用的关键字之一,可以修饰

1.修饰属性 此时属性就变成了静态属性

静态属性,对于多个实例化的对象,是共享的,只要改变可这个属性,那么所有对象的该属性都会改变

2.修饰方法 方法就变成了静态方法

静态方法的使用不需要对象的实例化,通过 类.方法名就能使用,对于一些常用的类的方法非常适用,比如Math类里面的很多方法,不需要实例化Math就能使用

3.修饰代码块

4.修饰内部类

3和4等我们讲到的时候在做详细介绍

修饰属性
class TestDemo{
    public int a;
    public static int count;
}
public class Main{
    
 public static void main(String[] args) {
        TestDemo t1 = new TestDemo();
        t1.a++;
        TestDemo.count++;
        System.out.println(t1.a);
        System.out.println(TestDemo.count);
        System.out.println("============");
        TestDemo t2 = new TestDemo();
        t2.a++;
        TestDemo.count++;
        System.out.println(t2.a);
        System.out.println(TestDemo.count);
   }
}
//输出的结果
//1
//1
//============
//1
//2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LBaSldhh-1677765252822)(C:\Users\A\Desktop\image-20230302211539490.png)]

修饰方法
class TestDemo{
    public int a;
    public static int count;
    
    public static void change() {
        count = 100;
        //a = 10; error 不可以访问非静态数据成员
   }
}
public class Main{ 
public static void main(String[] args) {
        TestDemo.change()//无需创建实例对象 就可以调用
        System.out.println(TestDemo.count);   
   }
}
//输出结果:100
👉 👉 值得注意的是

1.使用静态方法,内部可以有静态属性或者其他静态方法,但是不能有没有static修饰的属性和方法

2.使用普通方法,可以在内容使用静态方法和静态属性

因为普通方法和属性的使用和需要构造对象,但是静态方法就没有这个限制,假如没有实例化的对象,直接调用静态方法,其内部还有非静态属性或者方法的话就会出现错误

✍✍这一期初识类和对象结束,下一期重点对方法的重载丶构造方法丶this关键词丶和权限修饰符进行讲解

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成电吴彦祖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值