JavaSE基础Day06

JavaSE基础Day06

课程纲要
1. 类的定义和类的使用 ---> 上午核心案例: 学会基础格式(定义格式和使用格式)
2. 类的封装性 ---> 今日重点案例: 定义一个标准类

第一章 类的定义和类的使用

1、面向对象和面向过程
1. 两者的区别:
	A. 面向过程: 强调的是步骤,所有的事情都是自己去做
	B. 面向对象: 强调的是对象,找人帮助你做事情(备注:对象具备有做事情的功能)
	
2. 例如:
	打游戏上王者的操作。
	面向过程: 自己辛辛苦苦打游戏,从黑铁到青铜到白银到黄金到白金到钻石到大师最后上王者,很辛苦
	面向对象: 找个代练帮你上王者,前提是需要支付一定的酬劳
	对象: 代练,他具备有 上王者的功能
2、类和对象的关系
现实世界                  Java世界
========================================
手机设计图纸  ---------->class Phone
具体华为P30手机 --------> 对象  Phone p = new Phone();
特征: 品牌,价格 --------> 成员变量  String pinpai; int jiage;
功能: 打电话,发信息 ----> 成员方法  public void call(){ .... }    public void send(){ .... }
3、类定义和类使用【重点】
1. 类的定义(类里面有什么)
	A. 成员变量: 写在类中,方法外的变量
	B. 成员方法: 以前的方法,去掉了 static 关键字
	
2. 类的使用(8个字"创建对象,调用成员")
	A. 创建对象
		a.格式:	
			类名称 对象名称 = new 类名称();
		b.例如:
			Student stu = new Student(); //Student是类名称,stu是对象名称
	B. 调用成员
		a. 调用成员变量: 对象名称.成员变量名称  	//例如: stu.name  stu.age
		b. 调用成员方法: 对象名称.方法名称(参数); 	//例如: stu.eat();   stu.sleep();
4、局部变量和成员变量
1. 代码位置不同
	A. 局部变量: 写在方法中 或者 方法的小括号当中
	B. 成员变量: 写在类中 方法外
	
2. 内存位置不同
	A. 局部变量: 存在于栈内存,跟着方法走。方法在,局部在;方法亡,局部亡。(栈当中没有 默认值)
	B. 成员变量: 存在于堆内存,跟着对象走。对象在,成员在;对象亡,成员亡。(堆当中存在 默认值)

第二章 封装性

1、封装性的含义
1. 面向对象的三大特征:
	A. 封装性 (今天课程学习)
	B. 继承性 (Day09课程学习)
	C. 多态性 (Day10课程学习)
	
2. 封装的含义:
	将一些细节的部分,隐藏起来,外界不可见。你只需调用即可,不要去操心具体的细节。
2、private 关键字的由来
1. 为什么需要使用 private 关键字?
    如果不采用 private 关键字,会导致'数据安全问题' 给年龄赋值的时候,可以赋值为负数。例如: stu.age = -28;
	不符合现实逻辑的情况,就是'数据安全问题' 解决方案就是采用 private 关键字,给年龄加上 private int age;
	这样写完之后,会存在问题: 正常的年龄也不能赋值成功。怎么解决?提供一组 getter 和 setter 方法,能够存取值
	getter 方法用于取值'取钱',setter方法用于存值'存钱'2. 生活实例:
	我们现在在外面,都要租房子,租房子要找小区的房子,为啥?因为有门禁更安全。
	所有的人都不能直接进出,需要找物业帮你办理进出的门禁卡,例如: 刷脸。
3、this 关键字的使用
1. 含义(了解即可)
	通过谁调用的方法,谁就是 this. //具体的含义在 Day09 当中讲解。
	
2. 作用:
	区分成员变量和局部变量重名的问题。
	如果是 this.变量名称 表示的是 成员变量
	如果是 变量名称 表示的是 局部变量
	
3. 今天课程的使用场景
	A. 在 setter 方法当中会使用 this
	B. 在构造方法当中会使用 this
4、构造方法
1. 构造方法的格式:
	A. 格式:
		修饰符  类名称(参数列表){
            
        }
	B.例如: //学生类 class Student 的构造方法
		public Student(){
            
        }

2. 构造方法调用的时机:(什么时候会调用到构造方法)
	在创建对象的时候,就是调用构造方法的时候。 //问题: 成员方法和构造方法,谁先调用? 构造方法先调用
        
3. 构造方法有什么作用,为什么要使用构造方法?
     A. 创建对象(无参构造和全参构造都可以创建对象)
     B. 给成员变量赋值(主要是全参构造帮你去赋值)
     
4. 构造方法的注意事项
	A. 格式的注意: 构造方法没有返回值类型,不要写 void , 方法名称和类名称必须完全相同。
	B. 系统默认赠送无参构造,作用给你创建对象使用。如果你写出了构造方法,系统不再赠送构造方法。
5、标准类定义和使用【重点】

标准类的定义

//英雄类(标准类的定义 JavaBean)
//[1]成员变量 private 修饰
//[2]成员方法 getter 和 setter
//[3]构造方法 无参构造 和 全参构造
public class Hero {

    //成员变量,private 修饰
    private String name;
    private int age;

    //构造方法: 无参构造
    public Hero() {
    }

    //构造方法: 全参构造
    public Hero(String name, int age) {
        this.name = name;
        this.age = age;
    }

    //成员方法 getter 对于Name进行取值操作
    public String getName() {
        return name;
    }

    //成员方法 setter 对于Name进行存值操作
    public void setName(String name) {
        this.name = name;
    }

    //成员方法 getter 对于Age进行取值操作
    public int getAge() {
        return age;
    }

    //成员方法 setter 对于Age进行存值操作
    public void setAge(int age) {
        this.age = age;
    }
}

标准类的使用

//测试类(类的使用: 创建对象,调用方法)
public class Test {

    public static void main(String[] args) {
        //【1】无参构造+ setXxx()方法的使用
        //---------------
        //创建对象
        Hero one = new Hero();
        //调用方法,调用 setXxx 方法,进行存值操作
        one.setName("盖伦");
        one.setAge(20);
        //调用方法,调用 getXxx 方法,进行取值操作
        String name1 = one.getName();
        int age1 = one.getAge();
        //打印输出结果
        System.out.println("name1 = " + name1); //name1 = 盖伦
        System.out.println("age1 = " + age1); //age1 = 20
        System.out.println("===========================");
        //【2】全参构造 的使用
        //---------------
        //创建对象
        Hero two = new Hero("赵信",22);
        //调用方法,调用getXxx 方法,进行取值的操作
        String name2 = two.getName();
        int age2 = two.getAge();
        //打印输出结果
        System.out.println("name2 = " + name2); //name2 = 赵信
        System.out.println("age2 = " + age2); //age2 = 22
    }
}
在使用Python来安装geopandas包时,由于geopandas依赖于几个其他的Python库(如GDAL, Fiona, Pyproj, Shapely等),因此安装过程可能需要一些额外的步骤。以下是一个基本的安装指南,适用于大多数用户: 使用pip安装 确保Python和pip已安装: 首先,确保你的计算机上已安装了Python和pip。pip是Python的包管理工具,用于安装和管理Python包。 安装依赖库: 由于geopandas依赖于GDAL, Fiona, Pyproj, Shapely等库,你可能需要先安装这些库。通常,你可以通过pip直接安装这些库,但有时候可能需要从其他源下载预编译的二进制包(wheel文件),特别是GDAL和Fiona,因为它们可能包含一些系统级的依赖。 bash pip install GDAL Fiona Pyproj Shapely 注意:在某些系统上,直接使用pip安装GDAL和Fiona可能会遇到问题,因为它们需要编译一些C/C++代码。如果遇到问题,你可以考虑使用conda(一个Python包、依赖和环境管理器)来安装这些库,或者从Unofficial Windows Binaries for Python Extension Packages这样的网站下载预编译的wheel文件。 安装geopandas: 在安装了所有依赖库之后,你可以使用pip来安装geopandas。 bash pip install geopandas 使用conda安装 如果你正在使用conda作为你的Python包管理器,那么安装geopandas和它的依赖可能会更简单一些。 创建一个新的conda环境(可选,但推荐): bash conda create -n geoenv python=3.x anaconda conda activate geoenv 其中3.x是你希望使用的Python版本。 安装geopandas: 使用conda-forge频道来安装geopandas,因为它提供了许多地理空间相关的包。 bash conda install -c conda-forge geopandas 这条命令会自动安装geopandas及其所有依赖。 注意事项 如果你在安装过程中遇到任何问题,比如编译错误或依赖问题,请检查你的Python版本和pip/conda的版本是否是最新的,或者尝试在不同的环境中安装。 某些库(如GDAL)可能需要额外的系统级依赖,如地理空间库(如PROJ和GEOS)。这些依赖可能需要单独安装,具体取决于你的操作系统。 如果你在Windows上遇到问题,并且pip安装失败,尝试从Unofficial Windows Binaries for Python Extension Packages网站下载相应的wheel文件,并使用pip进行安装。 脚本示例 虽然你的问题主要是关于如何安装geopandas,但如果你想要一个Python脚本来重命名文件夹下的文件,在原始名字前面加上字符串"geopandas",以下是一个简单的示例: python import os # 指定文件夹路径 folder_path = 'path/to/your/folder' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构造原始文件路径 old_file_path = os.path.join(folder_path, filename) # 构造新文件名 new_filename = 'geopandas_' + filename # 构造新文件路径 new_file_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'Renamed "{filename}" to "{new_filename}"') 请确保将'path/to/your/folder'替换为你想要重命名文件的实际文件夹路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值