2021-11-14

类和对象
类的定义:类是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为
属性:在类中通过成员变量来体现(类中方法外的变量)
行为:在类中通过成员变量来体现(和前面的方法比去掉static关键字即可)
类的定义步骤:
1.定义类
2.编写类的成员变量
3.编写类的成员方法、
格式:
public class 类名{
    //成员变量
       变量1的数据类型 变量1;
       变量2的数据类型 变量2;
       ...
    //成员方法
       方法1;
       方法2;
}  
类和对象
对象的使用
创建对象
格式:类名 对象名 = new 类名();
使用对象:
1.使用成员变量
格式:对象名.变量名
2.使用成员方法
格式:对象名.方法名()

方法通用格式
public static 返回值类型 方法名(参数){
    方法体;
    return 数据;
}
public static    修饰符
返回值类型    方法操作完毕后返回的数据类型
        当方法返回值类型为void时,不可返回数据,可写return 方法体中一班不写
方法名        调用方法时使用的标识
参数        由数据类型和变量名组成,多个参数间用逗号隔开
方法体        完成功能的代码块
return        若方法操作完毕,且有数据返回,用于把数据返回给调用者        
调用方法时:
void类型的方法,直接调用即可
非void类调用的方法,推荐变量接收调用


方法调用格式
如     public static int azhe(int a){
        return a;
    }
    public static void main(String[] args)
    {
        System.out.println("azhe(3)");
    }


方法重载:指同一个类中定义的多个方法之间的关系。满足下列条件的多个方法相互构成重载
1.多个方法在同一个类中
2.多个方法具有相同的方法名
3.多个方法的参数不相同,类型不同或数量不同

方法的参数传递(基本类型)
对于基本参数的类型,形式参数的改变 不影响实际参数的值

    public static void change(int a){
        a = 200;
    } 
    public static void main(String[] args){
        int a = 100;
        system.out.ptrintln(a);
        change(a);
        system.out.println(a);
    }
    两次输出结果均为100


方法参数传递(引用类型)
对于引用类型的参数 形式参数的改变 影响实际参数的值
如:
    public static void change(int[] arr){
            arr[1] = 200;
    } 
    public static void main(String[] args){
        int arr[] = new int[]{1,2,3,4,5};
        system.out.ptrintln(arr[1]);
        change(arr);
        system.out.println(arr[1]);
    }
第一次输出2
第二次输出200


方法重载
指同一个类中定义多个方法之间的关系 
条件:
多个方法在同一个类中
有相同的方法名
多个方法的参数不同 类型不同 或数量不同
特点
仅对应方法的定义 与方法的调用无关 调用方式参照标准格式
仅针对同一个类中方法的名称与参数进行识别 与返回值无关 换句话说不能通过返回值来判定两个方法是否相互构成重载


成员变量和局部变量
成员变量:类中方法外变量
局部变量:方法中变量
区别:
位置不同
内存中位置不同 成员变量:堆内存 局部变量:栈内存
生命周期不同
成员变量:随对象的存在而存在 随对象的消而消失
局部变量:随方法的调用而存在 随方法的调用完毕而消失
初始化值不同
成员变量:有默认初始化值
局部变量:无默认初始化值 需要先定义 赋值 才能使用
private关键字
是一个权限修饰符 可修饰成员(成员变量和成员方法) 
作用:保护成员不被别的类使用 被private修饰的成员旨在本类中才能访问
针对private修饰的成员变量 若需要被其他类使用 提供相应操作:
提供“get变量名()”的方法 用于获取成员变量的值 方法用public修饰
提供“set变量名(参数)”的方法 用于设置成员变量的值 方法用public修饰
变量名首字母需大写

this关键字
this修饰的变量用来指代成员变量
若方法的形参若与成员变量同名 不带this修饰的变量 指的是形参 而不是成员变量
方法的形参若没与成员变量同名 不带this的修饰变量指的是成员变量
使用场景
解决局部变量隐藏成员变量
this:代表所在的对象引用
    方法被那个对象调用 this就代表那个对象
this内存原理

封装:面向对象三大特征之一(fengzhuang,继承,多态)
是面向对象编程语言对客观世界的模拟 客观世界里成员变量都是隐藏在对象内部的 外界是无法直接操作的
封装原则
将类的某些信息隐藏在类内部 不允许外部程序直接访问 而是通过该类提供的方法来实现对隐藏信息的操作和访问
成员变量 private    提供对应的getXxx()方法和 setXxx()方法
封装好处
通过方法来控制成员变量的操作 提高了代码的安全性 
把代码用方法进行封装 提高了代码的复用性


构造方法
作用 创建对象
功能 完成对象数据的初始化
格式
public class 类名(){
    修饰符 类名 (参数){
        
    }
}
注意事项
当一个类中未编写一个构造方法 系统会自动给出一个无参的构造方法
一旦给出构造方法 系统将不会给出一个无参的构造方法


推荐:无论是否使用 都手工书写无参构造方法

标准类制作
(1)成员变量 :使用private修饰
(2)构造方法 :提供一个无参构造方法     提供一个带多个参数的方法
(3)成员方法 :提供一个成员变量对应的setXxx()和getXxx()    提供一个显示对象信息的show()
(4)创建对象并为其成员变量赋值的两种方式 :无参构造方法创建对象后使用setXxx()赋值    使用带参构造方法直接创建带有属性值的对象 


API概述
API(Application Programming Interface):应用程序编程接口
Java API:指的是JDK中提供的各种功能的Java类

String概述
特点:字符串不可变 它们的值在创建后不能被更改
          虽然String的值是不可变的 但他们可被共享
          效果上相当于字符数组(cahr[]) 但底层原理是字节数组(byte[])
String构造方法
public String()        创建一个空白字符串对象 不含任何内容
public String(char chs[])    根据字符数组的内容 来创建字符串对象
public String(char bys[])    根据字节数组的内容 来创建字符串对象
String s = "abc";        直接赋值的方式创建字符串对象 内容就是abc
String对象特点
通过new创建的对象 每一次new都会申请一个内存空间 虽然内容相同 但地址值不同
如下:
    char[] chs = {'a','b','c'};
    String s1 = new String(chs);
    String s2 = new String(chs);
上面的代码中 JVM会首先创建一个字符数组 然后每一次new的时候都会有一个新的地址 只不过s1和s2参考的字符串内容是相同的
以“”方式给出的字符串 只要字符序列相同(顺序和大小写) 无论在程序代码中出现几次 JVM都会建立一个String对象 并在字符串池中维护
如下:
    String s3 = ”abc“;
    String s4 = ”abc“;
在上面的代码中 针对第一行代码 JVM会建立一个String对象放在字符串池中 并给s3参考
第二行则让s4参考字符串池中的String对象 也就是说它们本质上是同一个对象

字符串的比较
使用==作比较
基本类型:比较的是数据值是否相同
引用类型:比较的是地址值是否相同
字符串是对象 它比较内容是否相同 是通过一个方法来实现的 方法叫:equals()
public boolean equals(Object anObject):将此字符串与指定对象进行比较 由于我们比较的是字符串对象 所以参数直接传递一个字符串


遍历字符串
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
    for(int i = 0;i<3;i++) {
        System.out.println(Line.charAt(i));
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值