JAVA学习第六课--面相对象(二)

#类的提炼#

从现实生活中归纳总结出,多种相同物种,具有相同的特性(属性和方法)提炼到一个容器中,给这个容器起名字,这个名字就是类了。

1,先要有对象

2,然后提取出相同的属性

例如:名字,性别等

3,再提取出相同的方法

例如:跑步,吃饭

#构造方法#

构造方法主要是完成对象的创建

访问修饰符 构造方法名 () {
        初始代码

}

系统提供默认无参构造方法

public 类名() {}

例如定义一个dog类

并没有定义构造方法但是却可以调用

new Dog()就是系统默认给Dog类的构造方法

可以自己定义一个public Dog() {}来覆盖系统默认的构造方法

也可以自定义带参的构造方法,并且允许你创建多个构造方法或者方法。方法名相同,参数类型,个数,顺序不同的就叫做方法重载

再调用构造方法的时候还可以选择调用哪个参数数量的构造方法

#static修饰符#

一般我们是要先创建一个对象然后再可以访问类里面的属性和方法

如果使用了static修饰符之后就可以直接通过类名来访问属性和方法

#static代码块#

JVM加载类的时候会加载静态代码块,也就是不需要构建对象并且使用里面的方法访问打印属性,直接就会加载静态代码块,并且多个静态代码块会按顺序加载,但是只会执行一次。

没用对num的赋值调用的情况

运行代码就会打印出来

#静态变量和实例变量#

类的成员变量

--类变量(静态变量)

   被static修饰的变量,在内存中只有一个拷贝,可在类的内部任何方法内直接被访问,其他类中可以直接通过类名.访问

--实例变量

   没有被static修饰的变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响,只有创建了实例之后才可以通过实例访问到实例变量

#封装#

将类的某些信息隐藏在类内部。不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

优点:隐藏类的实现细节,只能通过规定方法访问数据

过程:

        1,将属性的可见性设为private

        2,创建公有的getter和setter方法

        3,在getter和setter方法中加入判断语句

体现:一个类中可以出现成员变量和成员方法,将私有的成员变量封装成公有的getter和setter方法

#不同包之间的导入#

一个类同时引用了两个来自不同包的同名类的时候,另一个必须通过完整类名来区分

package和import 的顺序是固定的

--package必须在第一行

--只允许有一个package

--其次是import

--接着是类的声明

#修饰符#

public:任何地方

protected:当前类,包,子类,不同包或者跨包不可以访问

默认访问修饰符:当前类,包

private:只能当前类

Java是一门面向对象的编程语言,面向对象编程是一种基于“对象”的程序设计思想。以下是学习Java面向对象编程的一些关键概念: ### 1. **类 (Class) 和 对象 (Object)** **类**是对一类实体共有的特征及功能的一种抽象描述。它包含属性(变量)以及可以对这些属性操作的行为(方法)。而**对象**则是根据这个蓝图创建出来的实例。 例如,在定义了`Dog`这个类别之后,你可以用它来创造具体的狗的对象如`myPet=new Dog();` ### 2. 封装 (Encapsulation) 封装是指将数据(字段、成员变量等)隐藏起来,并通过公共的方法提供访问权限控制。这有助于保护内部状态免受外部干扰并提高了代码的安全性和维护性。通常我们会把构造函数设为public,让其他包也能创建该类的新实例;同时为了保证某些特定的数据只能由本类自身修改,则会将其设置成private或者protected。 ### 3. 继承(Inheritance) 继承允许一个新类从现有的另一个类那里获取所有的非私有成员(包括方法和字段),并且还可以添加额外的功能或覆盖已存在的特性。“is-a”关系经常用于表示这种层次结构 - 子类是超类的一个更专业化的版本。 比如我们可以说:`Teacher extends Person`,即教师是一个人。 ### 4. 接口与实现 接口定义了一组规则——一组可供外界调用的服务列表,但它并不关心服务的具体实现细节。实现了某个接口意味着遵照其约定提供的所有服务都要给出实际的做法。 ### 5. 抽象(Abstract Classes and Methods) 当某件事物太复杂无法简单地用单个类去描述时,我们可以借助抽象的概念帮助简化建模过程。如果一个类中包含了未完成的操作那么就把它声明成abstract class;同样对于那些需要在子代里各自有不同的解释说明的动作则标记为 abstract method. ### 6. 多态(Polymorphism) 多态使得同一种类型的引用可以在运行时期绑定到不同类型的实际对象上,从而达到动态调度的目的。它增强了系统的灵活性和复用程度。 --- 以上只是简短介绍了几个核心要点。要想深入理解掌握java oop还需要结合实践项目不断练习才行!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值