Java基础——面向对象

第一次写技术类的博客,希望会越来越好!

面向对象

·面向对象的三大基本特征是:封装、继承、多态

·面向对象的编程思想就是把事物看作一个整体,从事物的特征(属性)和行为(方法)两个方面进行描述。

·面向对象的过程就是找对象、建立对象、使用对象、维护对象的过程。

接下来我将从5个方面入手来讨论面向对象。

一.类与对象

概念:程序中需要使用很多复合型数据,比如学生,棋子,日期,复数,这些类型都需要自己定义。

:  class 类别

        分析这类事物都具有的属性 特征 行为 功能

Java里面的类由关键字class定义,类中的元素称为:成员属性。类中的函数称为:成员方法。

对象:Object 具体的事物

EXAMPLE:

·人 书 计算机 球 (类别)

·具体的某个人 我在使用的计算机(对象)

定义类:自己创建一个复合数据类型

public class 类名{ }

————Java程序中的基本单位是类

————定义的类 不一定都具有属性和方法的类,也可以是一些功能类

内容: 学生类 ( 姓名 年龄 学号 | 上课 考试 学习 查看信息 )
——属性:表达数据信息 通常使用变量/ 常量表示
格式:
数据类型 数据变量名;
final 数据类型 数据变量名;
——方法:表达行为 / 功能的逻辑 通常使用一段代码表示 { } ( 方法 )
格式: 修饰符 返回值类型 方法名 (参数列表){ // 方法体 }
(代码中虽然不会报错,但是也需要考虑到现实问题,例如年龄不会有负数。)
除此属性和方法之外还包括:
1.构造方法
2.构造代码块
3.静态属性变量 / 常量
4.静态方法
5.静态代码块

创建对象:使用自己定义复合数据类型创建变量,这种叫做对象变量

格式:类名 对象名=new 类名();

变量
1.属性
2.参数
3.某个 { } 中的局部变量 方法中的局部变量 循环中局部变量 条件语句中局部变量 代码块中
局部变量
(多去尝试自己解释一些名词,这样会加深印象和理解)

二.封装

访问权限修饰符: 在代码编译期间作用代码可以使用的范围 ,限制代码的使用范围
public : 整个项目下都可以访问
private :只能在类的括号中使用访问
protected : 只能在同包下 / 不同包的子类中可以访问
缺省不写: 只能在同包下
访问权限修饰符可以修饰:
类 : public 缺省不写
接口: public 缺省不写
属性: 四种皆可
方法: 四种皆可
构造方法: 四种皆可
·比如,我创建了一个学生类,在学生类中定义一些私有的属性
那么我在另一个类中创建一个学生类的对象,这个对象对应的对象变量名不能调用学生类中
属性来赋值或者使用
大致是这样:
package com09 . oop . zyf0927 ;
public class Student {
private  String name ;
………………………………
}
public class StuManage {
public static void main ( String [] args ){
stu.name="";// 'name' has private access in 'com09.oop.zyf0927.Student——这里就会报错
}
}
: 给属性和方法设定权限 ,其他类中就不能直接使用了
(可以封装属性,不然错误数据设置给属性)
装: 打包
可以在类中提供 不受限制的方法来访问属性 或者 给属性赋值
set&get 方法
带参数的构造方法
(this其实是一个关键字,表示 当前方法的引用,那么为什么要有这个关键字呢,那是因为当变量名相同时,局部变量有限使用,可能会导致无法赋值等情况)
构造方法
语法: 修饰符 类名 ( 参数列表 ){ }
1 : 每个类都存在一个隐式的空参数的构造方法
2 : 自己可以显示的创建构造方法,创建之后会覆盖隐式的构造方法
3 : 构造方法是创建对象时调用 new 类名 ();
4: 自己给自己创建的构造方法加上参数 初始化对象
自己私有化构造方法,就会导致这个类不能在其他类中创建对象使用
单例模式:
一个类只能存在一个对象,那么这个类就不能随随便便创建对象了
实现单例模式的前提就是私有化构造方法
在本类中定义一个固定的对象,由 static 修饰 ,这个对象就可以使用类名直接调用了 ,
且也只能调用这个对象
这个类之外就不能再创建对象,只拥有自己类中创建的一个对象
static & final :
——static 静态的 唯一
属性 :这个属性属于类,在内存中只会创建一份,不管创建多少个对象,这个静态
的属性在内存中都只有一份
可以使用类名直接调用所有的对象名也都可以调用,调用的是同一份
方法: 可以由类名直接调用 ,静态方法中不能使用这个类中对象属性
代码块: 静态代码块 只有在类加载使用时执行一次
Student.name = " 张三 ";// Non-static field 'name' cannot be referenced from a
static context
最后输出的结果都是200
——final : 最终的 特性-不可变
类: 不能被继承 不能作为父类
属性: 常量: 初始化赋值之后不能改变值的
-对象成员属性: 对象成员常量
-静态属性变量: 静态常量
方法 : 不能被子类重写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值