Java 学习记录3——面向对象的简单理解

目录

面向过程与面向对象的区别:

面向对象的三大特征:

类和对象的概念

类的定义,创建及使用

this、static、final

关于包

import

访问权限修饰符


1

面向过程与面向对象的区别:

(1)面向过程:

  • 实现的具体过程,因果关系
  • 优点:业务逻辑简单的程序,可以达到快速开发
  • 缺点:难解决复杂的业务逻辑;耦合度高,扩展能力差,组件复用低

(2)面向对象:

  • 关注对象这个独立体能完成的功能
  • 优点:耦合度低,扩展力强,组件复用强,更符合人的思维方式
  • 缺点:前期投入成本高,需要进行独立体的抽取

2

面向对象的三大特征:

封装、继承、多态

Java 学习记录4——封装、继承、多态_YF amer的博客-CSDN博客

(第四大特征:抽象) 

3

类和对象的概念

(1)类介绍:

  • 类在现实世界是不存在的,为一个概念,部分对象间具有的共同特征,人抽象思考的结果

(2)对象介绍:

  • 现实实际存在的个体

(3)关系:

  • 类--(实例化)-->对象(又被称为实例instance)
  • 对象--(抽象)-->类

(4)重点:

  • 类描述的是对象共同的特征,如身高,体重
  • 特征访问的时候,需要先创建对象,通过对象去访问中这个特征。(因为具体的特征在不同的对象中,其值不相同。)

(5)类的信息:

  • 主要描述 状态+动作
  • 状态:一个类的属性
  • 动作:一个类的方法
  • 状态和动作具体到了某个对象之上后,其结果可能不一样

4

类的定义,创建及使用

(1)定义的语法结构:

  • [修饰符列表] class 类名 {类体}
  •  类体:属性,方法

例: 

//1
public class Student {
    //状态
    //定义变量:成员变量(方法体之外)
    String no;
    String name;
    boolean sex;
    int age;
    //动作:学习,运动...
}

(2)创建及使用:

//连1
//2(在同一src下创建另一个类)
//实例一个1中的学生类,
public class StudentText {
    public static void main(String[] args) {
        int i = 10;
        Student s1=new Student();//Student是一个数据类型,s1是一个变量名
        s1.name="王五";//特征访问的时候,需要先创建对象,通过对象去访问中这个特征
        System.out.println("姓名为"+s1.name);
    }
}

 

  • 成员变量(Student类中的name)不能直接访问,需要通过创建对象(new一个对象)进行访问。(实例后就是实例变量了)
  • s1可以称为实例对象(或引用),值为一个java对象的地址。
  • s1.name则为实例对象的具体属性(实例变量),在堆内存存储,只能以该形式(实例对象名.实例变量名)访问。未赋值则有一个初始值。
  • 一个类可以实例多个对象。
  • new运算符进行创建对象。

(3) 一个类的属性为另一个类的实例对象:

//3
public class Student1 {
    String name;
    Bag bag;//Bag为引用数据类型,和int等一个道理;bag为一个实例对象
}
//连3
//4
public class Bag {
    String book1;
    //铅笔盒...
}
//连3,4
//5
public class StudentText {
    public static void main(String[] args) {
        Student1 s2=new Student1();
        s2.bag=new Bag();
        s2.bag.book1="语文";//
        s2.name="李四";
        System.out.println(s2.name+"的"+s2.bag.book1);//李四的语文
    }
}
  •  解释:学生对象拥有一个书包的对象。

若有两个人互为朋友,那么在创建两个人的对象的属性当中就可以互相实例对方为朋友(像上边的书包) 。

5

this、static、final

java 学习记录6——this、static_YF amer的博客-CSDN博客

6

关于包

  • 名为package

(1)功能:

  • 方便查找,管理,维护

(2)定义:

  • 在Java源程序第一行编写package语句
  • package只能编写一句话
  • 结构:package 包名

(3)包名命名规范: 

  • 公司域名倒序+项目名+模块名+功能名;(避免重名)
  • 包名要全部小写,包名也是标识符,遵循标识符命名规则
  • 一个包对应一个目录
  • 使用包之后,类名为package后面全部

import

  • import语句用来导入其他类,同一个包下的类不需要导入

import语法格式:

  • import 类名;
  • import 包名.*;

import语句要编写再package语句下,class语句之上

7

访问权限修饰符

  • 访问权限修饰符控制元素的访问范围

访问权限修饰符包括:

public表示公开的,任何位置都可以访问
protected同包,子类可以访问
不写同包可以访问
private表示私有的,只能在本类中访问
  • 访问控制权限修饰符可以修饰类、变量、方法...
  • 当某个数据只希望子类可以使用时,使用protected进行修饰
  • 修饰范围:private<不写<protected<public
  • 类只用public和不写进行修饰(内部类除外)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黑的尾巴呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值