Java巅峰之路---基础篇---面向对象

news/2024/7/23 16:36:15 标签: java, 开发语言

目录

面向对象介绍

什么是面向对象编程?

为什么用面向对象编程?

面向对象的重点学习什么?

类和对象

介绍

类的定义

构造方法

作用

格式和特点、执行时机

构造方法注意事项

标准的JavaBean类

定义类的补充注意事项

封装

什么是封装?

封装思想的好处

private关键字

this关键字

有什么作用?

成员变量和局部变量的区别


面向对象介绍

什么是面向对象编程?

面向:拿、找

对象:能干活的东西

面向对象编程:拿东西过来做对应的事情

为什么用面向对象编程?

这种编程更加符合人类思维习惯,编程更简单,更好理解。

面向对象的重点学习什么?

1、学习获取已有对象并使用

2、学习如何自己设计并使用

类和对象

介绍

· 类(设计图):是对象共同特征的描述;

· 对象(能帮我们干活的东西):是真实存在的具体东西。

类的定义

public class 类名{

        1、成员变量(代表属性,一般是名词)

        2、成员方法(代表行为,一般是动词)

        3、构造器

        4、代码块

        5、内部类

}

只含变量与方法的类(简单)

java">package text;

public class GirlFriend {
    String name;
    int age;
    String gender;

    public void eat(){
        System.out.println("吃东西");
    }
    public void sleep(){
        System.out.println("睡觉");
    }
}
java">package text;

public class GirlFriendText {
    public static void main(String[] args) {
        GirlFriend gf1 = new GirlFriend();
        gf1.eat();
        gf1.age = 18;
        gf1.name = "小诗诗";
        System.out.println(gf1.age);
        System.out.println(gf1.name);
    }
}

构造方法

作用

· 在创建对象的时候给成员变量进行赋值

格式和特点、执行时机

public class 类名{

        public 类名(参数){方法体;}

}

特点:

· 方法名与类名相同,大小写也要一致

· 没有返回值类型,连void都没有

· 没有具体的返回值(不能由return带回结果数据)

执行时机:

· 创建对象的时候有虚拟机调用,不能手动调用构造方法

· 没创建一次对象,就会调用一次构造方法

构造方法注意事项

1)构造方法的定义

· 如果没有定义构造方法,系统将给出一个默认无参数构造方法

· 如果定义了构造方法,系统将不再提供默认的构造方法

2)构造方法的重载

· 带参构造方法,和无参构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载。

3)推荐的使用方式

· 无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法

标准的JavaBean类

1)类名需要见名知意

2)成员变量使用private修饰

3)提供至少两个构造方法

· 无参构造方法

· 带全部参数的构造方法

4)成员方法

· 提供每一个成员变量对应的set和get方法

· 如果还有其他行为,也需要写上

5)快捷键

· alt + insert 或alt + fn + insert

· 安装插件PTG(推荐)

定义类的补充注意事项

· 用来描述一类事物的类,专业叫做:Javabean类。在Javabean类中,是不写main方法的。

· 编写main方法的类,叫做测试类。我们可以在测试类中创建javabean类的对象并进行赋值调用。

·  类名首字母建议大写,需要见名之意,驼峰模式。

· 一个Java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。实际开发中建议还是一个文件定义一个class类。

· 成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化;一般无需指定初始化,存在默认值

封装

什么是封装?

· 告诉我们,如何正确设计对象的属性和方法

· 原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为

例如:“人画圆”,画圆该行为(方法)是写在圆的类里边的。画圆该行为需要半径才能实现,而半径是圆的属性,所以画圆该行为(方法)是写在圆的类里边的。“人关门”,关门该行为需要门的状态数据(关或者开),所以关门该行为(方法)是写在门的类里边的。

封装思想的好处

 · 让编程变得很简单,有什么事,找对象,调方法就行。

· 降低我们的学习成本,不用记对象有哪些方法,有需要时区API文档找就行

private关键字

· 是一个权限修饰符

· 可以修饰成员(成员变量和成员方法)

· 被private修饰的成员只能在本类中访问

· 如果需要被其他类使用,需要提供相应的set和get方法才行

java">package text;

public class GirlFriendText {
    public static void main(String[] args) {
        GirlFriend gf1 = new GirlFriend();
        gf1.setName("小诗诗");
        gf1.setAge(-1);
        gf1.setGender("女");

        System.out.println(gf1.getName());
        System.out.println(gf1.getGender());
        System.out.println(gf1.getAge());

        gf1.eat();
        gf1.sleep();
    }
}

 

java">package text;

public class GirlFriend {
    private String name;
    private int age;
    private String gender;

    //针对每一个私有化的成员变量,都要提供set和get方法
    //set方法:给成员变量赋值
    //get方法:对外提供成员变量的值
    public void setName(String n) {
        name = n;
    }
    public String getName() {
        return name;
    }
    public void setAge(int a) {
        if (a >= 18 && a <= 50) {
            age = a;
        } else {
            System.out.println("非法参数");
        }
    }
    public int getAge() {
        return age;
    }
    public void setGender(String g) {
        gender = g;
    }
    public String getGender() {
        return gender;
    }
    public void eat(){
        System.out.println("吃东西");
    }
    public void sleep(){
        System.out.println("睡觉");
    }
}

this关键字

有什么作用?

 · 可以区别成员变量和局部变量

成员变量和局部变量的区别

 · 成员变量:类中方法外的变量

 · 局部变量:方法中的变量,形参

 


http://www.niftyadmin.cn/n/5546668.html

相关文章

布隆过滤器 redis

一.为什么要用到布隆过滤器&#xff1f; 缓存穿透&#xff1a;查询一条不存在的数据&#xff0c;缓存中没有&#xff0c;则每次请求都打到数据库中&#xff0c;导致数据库瞬时请求压力过大&#xff0c;多见于爬虫恶性攻击因为布隆过滤器是二进制的数组&#xff0c;如果使用了它…

通过高德地图 JS API实现单击鼠标进行标注

效果图: 核心代码: <template><a-modal title="选择地图所在位置" :width="width" :visible="visible" @ok="handleOk" @cancel="handleCancel" cancelText="关闭"><div class="location-…

5G(NR) NTN 卫星组网架构

5G(NR) NTN 卫星组网架构 参考 3GPP TR 38.821 5G NTN 技术适用于高轨、低轨等多种星座部署场景&#xff0c;是实现星地网络融合发展的可行技术路线。5G NTN 网络分为用户段、空间段和地面段三部分。其中用户段由各种用户终端组成&#xff0c;包括手持、便携站、嵌入式终端、车…

elasticsearch SQL:在Elasticsearch中启用和使用SQL功能

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…

软件工程常见知识点

下午收到字节日常实习的面试邀请&#xff0c;希望这次能有一个好的表现。言归正传&#xff0c;邮件中提到这些问题&#xff0c;我这边借了书并查了网上的资料&#xff0c;做一个提前准备。 软件工程核心概念&#xff1a; 如何从一个需求落实到一个系统设计&#xff1f; 经过我…

一文洞悉巴基斯坦电子游戏出海引流获客广告风口不容忽视

一文洞悉巴基斯坦电子游戏出海引流获客广告风口不容忽视 随着全球数字经济的蓬勃发展&#xff0c;电子游戏行业也迎来了前所未有的机遇。巴基斯坦&#xff0c;这个拥有庞大人口基数和日益增长的消费能力的国家&#xff0c;其电子游戏市场潜力巨大。本文旨在探讨巴基斯坦电子游戏…

InetAddress.getLocalHost().getHostAddress()阻塞导致整个微服务崩溃

InetAddress.getLocalHost().getHostAddress()阻塞导致整个微服务崩溃 import java.net.InetAddress;public class GetHostIp {public static void main(String[] args) {try {long start System.currentTimeMillis();String ipAddress InetAddress.getLocalHost().getHostA…

JRE、JVM、JDK分别是什么。

JDK JDK的英文全称是Java Development Kit。JDK是用于制作程序和Java应用程序的软件开发环境。JDK 是 Java 开发工具包&#xff0c;它是 Java 开发者用来编写、编译、调试和运行 Java 程序的集合。JDK 包括了 Java 编译器&#xff08;javac&#xff09;、Java 运行时环境&…