Java之类和面向对象

概念:Java中的类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。
语法:
[访问限定修饰符] class 类名{}

public class  Demo{}
private class Demo{}
protected class Demo{}
class Demo{}

访问限定修饰符:

修饰符作用范围
public所有类中均可用
protected仅限本包中具有继承关系的子类可用
private仅限本类中可用
default默认修饰符本包中均可用

类名:统一采用大驼峰原则 eg:Test,Demo,Animal

面向对象

oop:Object Oriented Programming(面向对象),Java中编程是面向对象的,由于面向过程编程无法解决一些重用,维护,扩展等问题,而且逻辑复杂,代码不易理解,于是人们让计算机直接模拟现实世界的环境,从人类解题的思路去设计应用程序,于是面向对象编程出现了。
对象:一切客观存在的事物即为对象,对象具有自己的特征和行为,特征即为属性,代表对象具有什么,行为即为方法,代表对象能有什么功能。
分析对象的属性:

手机品牌apple
颜色黑色
价格8748
型号12pro
运行内存8GB
机身存储256GB

分析对象方法:

打电话拨号->发射
拍照美颜,修图
上网看视频,玩游戏,聊天,听音乐

分析现实和程序:
现实中对象:来自于模板,通过模板创造出来的实体,即是现实中的对象
程序中的对象:来自于模板(“类”),通过类创造出来的实体,即是程序中的对象

类和对象的关系:
类:定义了对象具有的特征和行为,类是对象的模板
对象:拥有多个特征和行为的实体,对象是类的实列

oop语言有三大特征:继承,封装,多态。本文只介绍封装

封装

I.	概念:尽可能隐藏对象的内部实现细节,控制对象的修改及访问的权限。
II.	private的访问修饰符,修饰属性,达到本类可见的效果。
III.	get/set方法是外界访问私有属性的唯一通道,方法内部可对数据进行过滤。
IV.	提供公共访问方法,以保证数据可以正常录入。

This关键字

this代表“当前实例”,即是模板中的当前对象,模板服务与哪个对象,this就指向哪个对象。
1.this第一种用法:调用本类中的实例属性、实例方法。例如:this.name、this.run() ,
2.this第二种用法:调用本类中的其他构造方法。例如:this()、this(实参)。注意:必须在构造方法的首行。

构造方法: 没有返回值的一个方法,且方法名与类名一致,每一个类都有一个默认的无参构造方法

class Student{
   public void Student(){}
   System.out.println("不带参数的构造方法执行了")
}

方法重载: 方法名相同,参数列表不同,返回值无关。同上个构造方法举例

public void Student(String name,int age,String sex){
 this.name=name;
 this.age=age;
 this.sex=sex;
 System.out.println("带参构造方法执行了")
}

综上所述,写一个完整程序供参考

public class School {
        public static void main(String[] args){
              Student stu=new Student();//创建对象时执行构造方法
            stu.setName("浩然");  //通过stu对象调用Student里的方法
            stu.setAge(21);
            stu.setSex("男");
            stu.getName();      //通过get方法获取私有属性
             stu.getAge();
             stu.getSex();
             stu.eat();
            System.out.println("==================================");
            stu.run();
            System.out.println("==================================");
            System.out.println("学生基本信息如下:");
              stu.show();
            System.out.println(stu);
             System.out.println("==================================");
            stu.Student();//调用无参构造方法
            stu.Student("晓雅",20,"女");//调用有参构造方法

        }
}

class Student{
  private String name;      //将类中的属性封装,外界无法访问,程序安全性提高
   private   int age;
   private String sex;

    public Student(){
         System.out.println("无参构造方法执行");
    }
    //构造方法重载
    public void Student(String name,int age,String sex){
        this.name=name;
        this.age=age;
        this.sex=sex;
        System.out.println("姓名:"+name+" 年龄:"+age+" 性别:"+sex);
    }

    public void eat(){
        System.out.println(name+"现在在吃午饭");
    }

    public void run(){
        System.out.println(name+"下午三点去体育场跑步");
    }
    public void show(){
        System.out.println("姓名:"+name+" 年龄:"+age+" 性别:"+sex);
    }

    @Override
    //String类库中的一个方法,展示本类中的属性
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                '}';
    }

//创建set/get方法获取本类中私有属性,外界可调用set/get方法获取到本类中的私有属性
    public void setName(String name) {
        this.name = name;  //调用当前属性
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getSex() {
        return sex;
    }
}

运行结果如下
在这里插入图片描述

Static关键字

1.静态与实例的区别:
I.实例属性是每个对象各自持有的独立空间(多份),对象单方面修改,不会影响其他对象。
II.静态属性是整个类共同持有的共享空间(一份),任何对象修改,都会影响其他对象。
2. 静态的概念:
I. static可以修饰属性和方法,即为静态属性(类属性)、静态方法(类方法)
II. 静态成员是全类所有对象共享的,全类只有一份,不因创建多个对象而产生多份。
III. 不必创建对象,也可通过类名,直接访问静态成员。
IV. 经验:访问静态属性和方法时,可直接通过“类名.静态属性名”以及“类名.静态方法名”(推荐)
3. 静态的特点:
I. 静态方法允许直接访问静态成员。
II. 静态方法不能直接访问非静态成员。
III. 静态方法中不允许使用this或super关键字。
IV. 静态方法可以继承,不能覆盖,没有多态。
4. 类加载:
I.JVM首次使用某个类时,将该类的.class文件加载到内存中,进行保存。
II.加载时机:
1). 创建对象
2). 创建子类对象
3). 调用静态属性和方法
4). Class.forName(“全限定名”); //主动的加载一个类

5. 静态代码块:
I. 类加载时,触发静态代码块的执行(仅一次)。
II. 执行地位:静态属性初始化之后。
III. 作用:可为静态属性赋值,或必要的初始行为。

6. 总结:
static修饰的成员为静态成员,无需创建对象,可直接通过类名访问。
静态方法不能直接访问非静态成员。
静态方法中不能使用this或super。
静态方法可以继承、不能重写、没有多态。
静态代码块在类加载时被执行,且只执行一次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java是一种非常流行的面向对象编程语言,它的核心概念之一就是与对象。 是用来描述具有相同属性和行为的一组对象的模板。可以把看作是一种自定义的数据型。在中,我们可以定义各种属性和方法来描述对象的特征和行为。属性是对象的状态,而方法则是对象的行为。 对象是的具体实例化,在内存中占有一定的空间。可以把对象看作是的变量,通过实例化来创建对象。对象可以访问中定义的属性和方法,并且每个对象都有自己独立的状态。 通过和对象的组合使用,我们可以实现面向对象编程的核心思想:封装、继承和多态。 封装是指将数据和操作数据的方法封装的内部,隐藏内部实现细节,只提供公共的访问方法。这样可以保证数据的安全性和一致性,提高代码的可维护性和重用性。 继承是指通过已有的创建新的,提供新所具有的属性和方法,并且可以重写或扩展父的方法。继承可以减少代码的冗余,提高代码的复用性和可扩展性。 多态是指同一型的对象在调用同一个方法时,可以有不同的行为表现。它通过方法重载和方法重写实现。多态可以提高代码的灵活性和扩展性,让我们能够编写更加通用和可复用的代码。 总之,与对象是Java面向对象编程的基石,它们的灵活组合使用可以让我们编写出高质量、模块化的代码,并且提高了代码的可维护性和可扩展性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值