Java-面向对象 上

面向对象思想概述

  • 面向对象思想概述:
    当需求单一,或者简单时,我们一步一步去操作没问题,并且效率也挺高。
    可随着需求的更改,功能的增多,发现需要面对每一个步骤很麻烦了。这时就开始思索,
    能不能把这些步骤和功能在进行封装,封装时根据不同的功能,进行不同的封装,功能类似的封装在一起。
    这样结构就清晰了很多。用的时候,找到对应的类就可以了。这就是面向对象的思想。
  • 面向对象思想特点:
    1:是一种更符合我们思想习惯的思想 懒人思想
    2:可以将复杂的事情简单化
    3:将我们从执行者变成了指挥者
    角色发生了转换
  • 面向对象特征:
    封装(encapsulation)
    继承(inheritance)
    多态(polymorphism)
  • 面向对象开发:
    就是不断的创建对象,使用对象,指挥对象做事情。

类与对象概述

  • 定义类其实就是定义类的成员(成员变量和成员方法)
    1:成员变量 和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
    2:成员方法 和以前定义方法是一样的,只不过把static去掉,后面在详细讲解static的作用。
  • 类和对象的概念
    1:类:是一组相关的属性和行为的集合
    2:对象:是该类事物的具体体现
    3:举例:
    类 学校
    对象 操场

类的使用

  • 文件名问题:
    在一个java文件中写两个类:一个基本的类,一个测试类。
    建议:文件名称和测试类名称一致。
  • 如何使用呢?
    创建对象使用。
  • 如何创建对象呢?
    格式:类名 对象名 = new 类名();
  • 如何使用成员变量呢?
    格式:对象名.变量名
  • 如何使用成员方法呢?
    格式:对象名.方法名(…)

成员变量和局部变量的区别

  • 在类中的位置不同:
    成员变量:在类中方法外
    局部变量:在方法定义中或者方法声明上(形式参数)
  • 在内存中的位置不同:
    成员变量:在堆内存
    局部变量:在栈内存
  • 生命周期不同:
    成员变量:随着对象的创建而存在,随着对象的消失而消失
    局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
  • 初始化值不同
    成员变量:有默认初始化值
    局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
  • 注意事项:
    局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。

方法的形式参数是类名的时候如何调用

  • Java中参数传递问题:
    形式参数
    基本类型:形式参数的改变不影响实际参数
    引用类型:形式参数的改变直接影响实际参数
  • 方法的参数是类名
    如果你看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象。

匿名对象的概述和应用

  • 什么是匿名对象:
    就是没有名字的对象
  • 匿名对象应用场景:
    1:调用方法,仅仅只调用一次的时候。
    2:匿名对象可以作为实际参数传递

封装的概述

  • 封装概述:
    是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
  • 封装好处:
    隐藏实现细节,提供公共的访问方式
    提高了代码的复用性
    提高安全性。
  • 封装原则:
    将不需要对外提供的内容都隐藏起来。
    把属性隐藏,提供公共方法对其访问。
  • private关键字的概述和特点:
    1:是一个权限修饰符
    2:可以修饰成员变量和成员方法
    3:被其修饰的成员只能在本类中被访问

this关键字的概述和应用

  • 为什么要有this:
    当我们的局部变量和成员变量相同的时候,如果我们不使用this关键字,那么会导致一个问题:就是局部变量隐藏了成员变量的问题
  • this关键字特点:
    是当前类的对象引用。
    简单的记,它就代表当前类的一个对象。谁调用这个方法,那么该方法的内部的this就代表谁
  • this的应用场景:
    解决局部变量隐藏成员变量

面向对象的练习

  • 通过面向对象的思想,描述你自己的电脑类,并加入private权限修饰符,并且使用这个类.

创建对象:

  public class Computer{        
     private String name; 
     public String setName(String name) {         
     this.name=name;     
	 }     
	 public void getName() {
     return name;
	 }    
     public void play{
       System.out.println(“打游戏”);

     }

     public void movie{

       System.out.println(“看电影”);

     }

  }

使用对象:

import java.lang.reflect.Proxy;
import java.net.SocketTimeoutException;
public class Demo{
   public static void main(String[] args){
          Computer computer=new Computer();
          computer.setName("戴尔");
          String name=computer.getName;
          System.out.println(name)
          computer.play();
          computer.movie();
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值