Java 05对象及API

Java 05
面向对像

  1. 对象:万物皆对象,客观存在的事物都是对象
    类:类是对现实生活中一类具有共同属性和行为的事物的抽象。
     类是对象的数据类型;
     类是具有相同属性和行为的一组对象的集合
    属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值。
    行为:对象能够执行的操作;
    类和对象的关系:类是对象的抽象,对象是类的实体
    类:类是对现实生活中一类具有共同属性和行为的事物的抽象。
    对象:是能够看得到摸得着的真实存在的实体,是类的具体化;;

类的定义
类:类是对现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有属性和行为。
类的组成:属性和行为
 属性:在类中通过成员变量来体现;
 行为:在类中通过成员方法来体现;
类名(大驼峰命名法);

成员变量与局部变量的区别:
 位置:
成员变量位于类的内部,方法外部;
局部变量位于类的内部,方法内部(方法内的参数以及方法的形参);
 作用域:
成员变量:是整个类;
局部变量:仅限于所在方法;
 默认值:
成员变量:有默认值,默认值与数组相同;
局部变量:无默认值,要求在第一次使用前必须初始化;

封装
Private:
访问修饰符
可以修饰成员变量 和 成员方法
被private修饰的成员 只能在当前类中访问
使用private修饰成员 是 为了保证在回去数据的时候 获取到的都是有效数据

当成员变量被private修饰后,于此同时 我们需要

this关键字 表示当前对象;this 代表的是当前方法调用的对象;
this的作用:
1:用来区分同名的成员变量 和局部变量;
2:在代码中明确的指代当前使用的的成员 是当前对象的成员时 则可以使用this来表示;

封装概述:是面向对象的三大特征之一(封装,继承,多态);
封装是对面向对象语言对客观世界的模拟,客观世界中许多成员变量(特征)不允许直接访问;
封装原则:将类的某些信息隐藏在类中,不允许外部程序直接访问,需要使用该类提供的方法getxxx/setxxx来进行访问;
封装好处:通过方法来控制成员变量的操作,提高了代码的安全性;对方法进行封装,提高了代码的复用性;

idea中自动生成getter 和setter 方法的快捷方式;

构造方法
作用:创建对象,完成对象属性的初始化
构造方法:
访问修饰符 public private;
方法返回值类型:无返回值,void也不写;
方法名称:和类名保持一致;
参数列表:根据实际需要罗列;
当我们没有手动创建构造方法时,则JVM会为我们提供一个默认的构造方法;
构造方法的执行实际:当创建对象的时候就会被调用,而且创建 一个对象时,构造方法就会被调用一次;

自定义构造方法:
当程序中我们自己写了构造方法的时候,则jvm将不会在给我们提供默认的构造方法;
此时我们还需要通过无参构造来创建对象,则需要的手动的将无参构造写出来;
构造方法也可重载;

在我们实际开发中,去创建一个类的时候,通常情况下,我们都需要将默认无参构造手动的写出来;

在构造方法中如果需要调用其他的 重载的构造方法,可以使用this();但是调用this() 调用其他的构造方法只能调一次(因为在构造方法中使用this()调用重载的构造方法,必须将this()放在 第一行)

标准的java类
类的组成:
构造方法;
成员变量;
成员方法;
细节:
1:构造方法需要多个,至少需要包含无参构造;
2:成员变量必须使用private修饰,同时提供get/set方法;

API
1:字符串
 字符串不可变,他的值在创建后不可被改变;
 即便字符串的值不可更改,但是他可以被共享
 效果上相当于字符数组(char[]),底层原理是字节数组(byte[])

JAVA三种常量池:
1:字符串常量池(全局字符串池,string pool , string literal pool)
2:运行时常量池(runtime constant pool)
3:class文件常量池(class constant pool)

String 直接创建的字符串(eg: String a = “java”)存在字符串常量池中;
String new的一个类会在堆中实例化一个String类,并存在堆中的内存;
字符使用“+”拼接时:若使用的是字符串直接拼接(eg: String a = “ja”+ “va”),则储存在字符串常量池中;
若使用的是字符串引用拼接(eg: String a = str1 + str2),则使用的是String.builder.append方法拼接,并在堆内存中new一个新的内存空间来储存拼接后的值。

若要比较字符串的内容是否相等,则需使用equals()方法来进行比较(eg: a.equals(b),比较字符串a,b的内容是否相同);

为了尽量避免equals()调用出现异常,尽可能将字符串常量放置于“a”;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值