java基础面向对象之封装

java基础面向对象之封装

2017-01-15

封装

    1)封装性就是保证类内部被外部类不可见

    2)所有属性都必须使用private关键字声明

    3)封转后的属性如果要被外部所访问就必须实现set和get方法

例如:

  使用了private声明的属性只有在自己的类是可见的
 1 class Book{
 2     private String title ;    //使用private声明的属性
 3     private int price ;
 4 }
 5 public class PrivateDemo1 {
 6     public static void main(String[] args) {
 7         Book bk = new Book () ;
 8         bk.title = "java基础" ;    //使用了private声明的属性只有在自己的类是可见的
 9         bk.price = 89.9 ;
10     }
11 }

如果想要让我们的程序正常使用,那么必须要想办法让外部的程序去操作类的属性才可以。

在类中所有的属性都要求使用private关键字来声明,如果属性需要被外部所使用,那么需要定义相应的set和get方法。

setter方法:设置属性内容

1     public void setTitle(String title) {
2         this.title = title;
3     }

getter方法:取得设置的属性内容

    public String getTitle() {
        return title;
    }

构造方法

对象的产生格式:1类名称  2对象名称  =  3new  4类名称() ;

      类名称:规定了对象的类型,就是规定了对象属于那个类的实例(可以使用那些属性或方法)

      对象名称:如果想要使用对象,就需要有一个名字,这个对象名是唯一的

      new: 开辟新的对内存空间,如果没有new关键字对象是无法被实例化的

      类名称():调用了一个和类名称一样的方法,这个方法就称为构造方法

java为了保证程序的正常执行,那么在程序的编译之后为类里增加一个无参数的构造方法。

构造方法的定义原则:方法名称与类名称相同,没有返回值声明。

 1 class Person{
 2     public Person() {    //无参构造方法
 3         System.out.println("**********");
 4     }
 5 }
 6 public class PrivateDemo2 {
 7     public static void main(String[] args) {
 8         Person p = null ;//声明对象
 9         p = new Person() ; //实例化对象
10         /**
11          * 实例化对象的时候会调用构造方法
12          */
13     }
14 }

所有的构造方法都在使用关键字new实例化的时候被默认调用。

构造方法与普通的方法最大的区别

  构造方法是在实例化对象的时候只调用一次。

  普通方法是在实例化对象之后,可以随意调用多次

构造方法的核心作用,在类对象实例化的时候设置属性初始化内容。构造方法是为属性初始化准备的。

如果一个类中已经明确的定义了一个构造方法,那么自动生成的无参的构造方法将不会自动生成默认的构造方法。一个类中至少保留一个构造方法。

 1 class Person{
 2     private String name ;
 3     private int age ;
 4     public Person(String n , int a) {    //无参构造方法
 5         name = n ;
 6         age = a ;
 7         System.out.println("**********");
 8     }
 9     public String getName() {
10         return name;
11     }
12     public void setName(String name) {
13         this.name = name;
14     }
15     public int getAge() {
16         return age;
17     }
18     public void setAge(int age) {
19         this.age = age;
20     }
21
22 }
23 public class PrivateDemo2 {
24     public static void main(String[] args) {
25         Person p = null ;//声明对象
26         p = new Person("zhangsan" ,30) ; //实例化对象
27         /**
28          * 实例化对象的时候会调用构造方法
29          */
30     }
31 }    构造方法的核心作用:在类对象实例化的时候为属性设置初始化

构造方法的重载

  既然构造方法也属于方法的一种,那么构造方法也是可以重载的。
 1 class Person1{
 2     private String name ;
 3     private int age ;
 4     public Person1(){
 5         System.out.println("没有参数的构造方法    ");
 6     }
 7     public Person1(String n){
 8         System.out.println("有一个参数的构造方法");
 9     }
10     public Person1(String name , int age){
11         System.out.println("有两个参数的构造方法");
12     }
13 }

  

  匿名对象

真实的信息都保存在堆内存之中,如果栈指向的对象就称为匿名对象。
 1 class Person2{
 2     private String name ;
 3     private int age  ;
 4     public void info(){
 5         System.out.println("匿名方法调用");
 6     }
 7 }
 8 public class PrivateDemo4 {
 9     public static void main(String[] args) {
10         new Person2().info() ;//匿名对象调用info()方法
11         /**
12          * 没有栈内存引用的对象就是匿名对象
13          */
14     }
15 }

  匿名对象由于没有其他对象的引用,所以匿名对象只能使用一次。

总结:1、构造方法的定义要求:方法名与类名完全相同,且无返回值。2、构造方法是在类对象在实例化的时候调用的3、一个类之中必须保留有一个构造方法,如果没有明确定义一个构造方法那么会自动生成一个无参的什么也不做的构造方法。4、构造方法的核心是类对象在实例化的时候为类中的属性初始化。5、构造方法重载时只要求考虑参数的个数及类型。6、匿名对象只可以使用一次。
时间: 2024-10-14 01:00:47

java基础面向对象之封装的相关文章

黑马程序员——Java基础---面向对象之封装

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 面向对象之封装      一:封装概述 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处: (1)将变化隔离(内部怎样变化外部是不需要知道的,只调用即可) (2)便于使用(我们不用知道内部构造直接使用就可以) (3)提高重用性

java基础面向对象之类与对象

java基础面向对象之类与对象 2017-01-14 1.面向对象的基本概念 以一种组建化的形式进行代码设计 1)在面向对象程序设计中包含有如下几种特性 ?封装性:保护内部结构的安全性 ?继承性:在已有的程序结构上扩充新的功能 ?多态性:在某一个该娘范围内满足 2)面向对象开发分为以下几个步骤: OOA(面向对象分析) OOD(面向对象设计) OOP(面向对象编程) 2.类与对象 1)了解类与对象的关系 ?认识类与对象 类与对象是整个面向对象之中最基础的组成单元,类是共性的一个集合,而对象是某一

Java基础---面向对象(1)

Java基础--面向对象 1.什么是面向对象 面向对象是基于面向过程的编程思想. (1).面向过程: 面向过程强调的是每一个功能的步骤,强调的是如何实现的步骤. (2).面向对象: 面向对象强调的是对象,然后由对象去掉用功能,强调的是做这一个事情的结果. 2.面向对象的思想特点 (1).是一种更加符合我们思想习惯的逻辑. (2).可以将复杂的事情简单化 (3).将我们从执行者变成了指挥者. 3.面向对象举例 我们一洗衣服为例: 面向过程的实施步骤: 找出脏衣服--->放入盆中---->放入洗衣

Java基础---面向对象(2)

Java基础-面向对象(封装概述) 1.面向对象封装的基本概述和使用 (1).什么是封装的思想 定义一个基本的student类: 成员变量:name,age 成员方法:show()方法 测试类: StudentDemo 创建student对象,并使用里面的方法 我们在定义这一个案例的过程中,我们发现一个问题: 通过对象去给成员变量赋值,可以赋值一些非法的数据,如年龄我们定义的是int类型,也就是说我们赋值200也是合理的,但是在实际当中,这一个是不合理的,我们应该需要做一个限制,应该是 这样子,

Java基础——面向对象练习题

1.建立一个图形接口,声明一个面积函数.计算圆形和矩形的面积.注:体现面向对象的特征,对象值进行判断,用异常处理.不合法的数值需要出现"这个数值是非法的提示",不再进行运算. 2.在一个类中编写一个方法,这个方法搜索一个字符数组是否存在某个字符.如果存在则返回这个字符在数组中第一次出现的位置,否则返回-1.需要搜索的字符数组和字符都一参数的形式传递给该方法.如果传入的数组为NULL,则应该抛出IllegalArgumentException异常. 3.补充compare函数代码. 4.

java基础面向对象之this关键字

java基础面向对象之this关键字 2017-02-14 this的核心概念: this关键字在java中表示当前对象. this关键字的主要用法: 在java中利用this关键字可以实现类属性的调用,类方法的调用,当前对象. 一.调用属性 1 class Book{ //Book类 2 private String title ; //title属性 3 private int price ; //price属性 4 5 public Book(String t , int p){ 6 ti

黑马程序员-Java基础-面向对象-类和对象、封装、构造函数、this、static、饿汉式&amp;懒汉式

第一讲  面向对象概念 1.  定义 相对于与面向过程而言的,将功能封装进对象,我们只关心具备了该功能的对象,而不用关注对象的具体细节. 面向对象的特点:使复杂问题简单化.我们只关心什么对象能处理什么事情,而不用关心具体的实现细节. 2.  面向对象特征 封装.继承.多态. 第二讲  类和对象的关系 1.  概述 类就是:对现实生活中事物的描述,可以是实体的事物也可以是一件事等: 对象是:是某类事物的实例,实实在在存在的个体: 映射到java中,描述就是class定义的类. 具体对象就是对应ja

Java基础面向对象

Java基础第七天 面向对象思想 类与对象及其使用 对象的内存图 成员变量和局部变量的区别 匿名对象 封装(private) this关键字 构造方法 static关键字 面向对象思想引入 前面我们讲过数组,当有多个数组都需要遍历时,我们可以将遍历的代码封装到方法中,需要遍历时,就调用相应的方法即可,提高代码的复用性.在对数组遍历的基础上继续增加需求,比如获取最值,数值逆序等,同样需要将这些功能封装到相应的方法中.这样继续封装会发现方法越来越多,于是就想能不能将这些方法继续进行封装呢?通过前面的

黑马程序员——Java基础---面向对象(下)

一.概述 面向对象除了封装.继承和多态三大特征之外,还有其他的特性,例如abstract抽象.interface接口等,抽象类主要作为多个类的模板,而接口则定义了多类应该遵守的规范,final关键字让java实现不可变类,让系统更加安全. 二.正文 1.构造器和初始化块 1.1 构造器 构造器是一种特殊方法,这个特殊方法用于创建实例时执行初始化,是创建对象的重要途径,如果程序员没有为JAVA类提供任何构造器,则系统会为这个类提供一个无参数的构造器,这个构造器的执行体为空,不做任何事情.无论如何,