面向对象、封装

面向对象

1.1
面向过程:基于面向过程的一种思想!

  • 面向过程:代表C语言,强调一个功能的步骤。
  • 面向对象:代表java语言,强调对象的创建,使用对象调用功能。

面向对象的思想:

  • 一切客观存在的事物都是对象,万物皆是对象。

  • 任何对象,一定具有自己的特征和行为。

     特点:
     - 更符合生活中的思想行为习惯 		
      - 让复杂的事情简单化 		
      - 让我们从执行者变成指挥者
    

对象:

  • 特征:称为属性,一般为名词,代表对象有什么
  • 行为:称为方法,一般为动词,代表对象能做什么

面对对象设计的原则:
不断创建对象、使用对象,指挥该对象做事情

面对对象的三大特征:封装、继承、多态。




1.2类和事物的关系:
事物:描述现实世界的真实存在的具体的!
学生 -----------> 学生事务

  • 属性:姓名、年龄、学号、性别
  • 行为:主要学习

:描述一组事物和行为的集合(类:是Java语言的最基本的单元)
学生事务 ------------> 代码体现出来:类,学生类 class student(){}

  • 属性:描述学生的特征

    成员变量:位置:在类中,方法外(name,age,student,genser)

  • 行为:描述学生能干什么(主要学习)

    成员变量:study()
    注意:成员方法去掉static public 返回值类型 方法名(参数){}

张三or李四:具体事务
代码体系集体事物:创建该类对象 类名 对象名 = new 类名();
对象名.成员变量
对象名.name = “张三”
对象名.成员方法();

面向对象的最大特点:强调面向对象的创建,使用对象调用自己的功能

1.3形式参数

  • 形式参数如果是一个基本数据类型,形参的改变的改变对实际参数没有影响,需要什么数据类型,传递具体的值即可!
  • 形式参数如果是一个类(具体类),那么形式参数的改变直接影响实际参数

结论:形式参数如果传递的是一个数组类型,需要传递的该数组的对象

1.4匿名对象
匿名对象:没有名字的对象。
匿名函数的格式
new 类名();(前提条件:该类一个具体类)
**特点:**仅仅使用一次,使用完毕,从内存中会立即被释放掉(节省空假案,android移动端使用居多)
注意:使用匿名对象的时候,不建议使用多次

封装private

private关键字的特点:

  • private可以修饰一个类中的成员变量,也可以成员方法
  • 被private修饰的成员变量或者是成员方法只能在本类中的方法,外键不能访问!(保证数据的安全性)

什么时候将变量定义为成员变量 -----> 如果该变量能够描述某个事物的属性的话,----变量就要定义成员变量!

局部变量和成员变量名称一样(局部变量隐藏了成员变量),为了区分成员变量和局部变量,java提供了一个关键字:this(代表了当前该类对象地址引用)
setXXX(形参)方法,谁调用这个方法,那么this代表它(地址)

2.1构造方法
构造方法中的注意事项:
1)在一个类中,我们不写无参构造方法,系统会默认的提供一个无参构造方法,

2)如果我们提供一个有参构造方法,系统不会在提供无参了,如果使用无参构造方法创建对象,就会报错!
(永远建议给出无参构造方法)!

成员方法
成员方法的分类:(非静态的成员方法)

  • 两种情况:

    要么有返回值类型

  • 1)有返回值类型,并且有参数

  • 2)有返回值类型,没有参数

  1. 要么没有具体返回值:void代替
  • 1)没有返回值类型,带参

  • 2)没有返回值类,不带参

2.2关键字:static
“静态修饰符”
共享的,共用的

//定义一个人类
class Person{
 //定义三个成员变量
 String name ;  //null
 int age ;   //0
 //String country ; //null
 static String country ;
 
 //提供两个参数的有参构造
 public Person(String name,int age){
  this.name = name ;
  this.age = age; 
 }
 
 //带三个参数的构造方法
 public Person(String name,int age,String country){
  this.name = name ;
  this.age = age ;
  this.country = country ;
 }
 
 //提供一个成员方法:show(),将成员变量输出
 public void show(){
  System.out.println("姓名是:"+name+",年龄是:"+age+",所在的国籍是:"+country);
 }
}
//测试类
class PersonTest{
 public static void main(String[] args){
  //古代四大美女
  //创建对象
  Person p1 = new Person("貂蝉",25,"中国") ;
  p1.show() ;
  System.out.println("------------------") ;
  //Person p2 = new Person("西施",22,"中国") ;
  //改进:
  Person p2 = new Person("西施",22) ;
  p2.show() ;
  System.out.println("------------------") ;
  //Person p3 = new Person("杨玉环",20,"中国") ;
  //改进:
  Person p3 = new Person("杨玉环",20) ;
  p3.show() ;
  System.out.println("------------------") ;
  //Person p4 = new Person("王昭君",28,"中国") ;
  Person p4 = new Person("王昭君",28) ;
  p4.show() ;
 }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值