Java面向对象——方法与封装

封装

  • 什么是封装:

    将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

  • 如何实现封装:
  1. 修改属性的可见性,设为private。
  2. 建立共有的get/set方法,用于属性读写。
  3. 在get/set方法中加入属性的控制语句,对属性的合法值进行判断
  1. 便于使用者正确使用系统,防止错误修改属性
  2. 有助于系统之间的松耦合,提高系统独立性
  3. 提高软件的可重用性
  4. 降低了构建大型系统的风险
创建封装类
class Person {
    private String name ; //属性必须被private修饰
    public String getName() {    //公有get方法
        return name;             //控制语句
    }
    public void setName(String name) {//公有set方法
        this.name = name;          //控制语句
   }
   public void out(){
   System.out.println("我的名字是:"+name);
    }
   }
}
//可以使用 alt+shift+s 键然后按R键快速设置get/set方法
测试代码块
public class Test {
    public static void main(String[] args) {
            Person p=new Person();
            png.setName(name);
            //Person p=new Person(name);  //可以使用有参构造方法创建对象
            // 输出信息
            p.out();
    }
}

Static修饰符

  Staric的五种用法

    1. 修饰静态属性;
    2. 修饰静态方法;
    3. 修饰静态内部类;
    4. 静态导包(类或者方法,可以通配);
    5. 标记静态代码块

Static修饰的类和属性可以被类名直接调用: 类名.属性名 类名.方法名

Static 用法实例
import static java.lang.System.out;//静态导包,静态导包的好处就是可以直接使用对象或者方法,不用再依赖于对象对象或者类来调用

public class Person {
    static double num=2;//静态变量

    static void out(String string){ //静态方法
           out.println(string);//静态导包可以直接使用对象或者方法,不用再依赖于对象对象或者类来调用
       }
    static class NewPerson {   //静态类
        public String show() {
            return("静态内部类实例 ");
        }
    }

   static{ //静态代码块 最优先的 当Java虚拟机加载类时,就会执行该代码块
          System.out.println("静态代码块实例1");
       }
    static{ //静态代码块
          System.out.println("静态代码块实例2");
       }
    static{ //静态代码块
          System.out.println("静态代码块实例3");
       }
}
//测试类
public class Test {
    public static void main(String[] args) {
        Person.out("静态方法实例");

    }

}

Static与非Static的区别:

  1. static修饰的成员是随着类的加载而加载(优先)
  2. 非static成员是随着对象的创建而加载
  3. 静态方法|静态代码块只能调用静态成员,非静态成员是不能直接调用的,创建对象(不能使用this,super 关键字)
  4. 非静态方法可以直接调用非静态成员,也可以调用静态成员.类的对象进行调用静态成员
  5. 静态成员对于多个对象而言是共享的
  6. 非静态成员对于多个对象是彼此独立的
  7. 静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存

原文地址:https://www.cnblogs.com/big-data-sky/p/10981439.html

时间: 2024-11-10 11:09:22

Java面向对象——方法与封装的相关文章

(1) 深入理解Java面向对象三大特性 封装 继承 多态

转眼已经工作快6年了,最开始做了2年J2EE:然后整了2年的数据仓库,主要是Cognos的报表开发:现在从事4G LTE核心网的开发,用的语言任然是Java,但写代码的机会不多,基本都是看代码找BUG,偶尔做点new feature也是在比较成熟的框架上复制.粘贴.修改,大部分时间还是在理解业务,钱多.事少.离家近,当时来这家公司图的是后面2点,2年过去了,英文水平有所提升,对敏捷开放也有一定的了解,但技术方面明显退步了或者说没有进步吧,本来以前也不怎么好,因为工作上用不到,自己也没怎么学习,所

Java面向对象-方法的重载

Java面向对象-方法的重载 所谓方法的重载, 类里面有两个或者多个重名的方法,但是方法的参数个数.类型.顺序至少有一个不一样,这时候局构成方法重载: 上代码: 1 package com.java1234.chap03.sec03; 2 3 public class Demo01 { 4 5 int add(int a,int b){ 6 System.out.println("方法一"); 7 return a+b; 8 } 9 10 /** 11 * 方法的重载,参数个数不一样

Java面向对象-方法的值传递和引用传递

Java面向对象-方法的值传递和引用传递 方法的值传递: 值传递 在方法里改变变量的值 作用范围仅仅是方法里 对外面不影响: 上代码: 1 package com.java1234.chap03.sec03; 2 3 public class Person { 4 5 void speak(int age){ 6 System.out.println("我今年"+age+"岁了"); 7 age=24; // 作用范围是方法里 8 } 9 10 public sta

Java面向对象三大特性 封装 继承 多态

1.封装 封装的定义: 首先是抽象,把事物抽象成一个类,其次才是封装,将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系 为什么需要封装: 封装符合面向对象设计原则的第一条:单一性原则,一个类把自己该做的事情封装起来,而不是暴露给其他类去处理,当内部的逻辑发生变化时,外部调用不用因此而修改,他们只调用开放的接口,而不用去关心内部的实现 举例: public class Human { private int age; private String name; public int get

Java面向对象-方法的定义及简单使用

Java面向对象之方法 方法是对象的一部分,也称为行为: 先来一个简单实例: 1 package com.java1234.chap03.sec03; 2 3 public class Person { 4 5 void speak(){ 6 System.out.println("我是张三"); 7 } 8 9 public static void main(String[] args) { 10 Person person=new Person(); 11 person.speak

Java面向对象一(封装 继承 多态 类 对象 方法)

1.封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 如下,人这个类封装了很多人的属性和行为: 2.继承:很好的实现了代码的复用,提高了编程效率. 人{ 年龄(属性一) 身高(属性二) 性别(属性三) 做事(行为之一) 走路(行为之二) 说话(行为之三)} 教师{ 年龄(属性一) 身高(属性二) 性别(属性三) 做事(行为之一) 走路(行为之二) 说话(行为之三) 教书(行为之四)} 教师继承了人的属性和行为,额外多出的是教书的行为.所以可以写成 教师 继承了 人这个类 的

java面向对象的基本形式,封装、继承、多态

总结:1.面向对象三个特征:封装;继承;多态; 方法也是一个最基本的封装体,类也是封装体 2.封装:隐藏了实现的细节,还要对外提供可以访问的方式,便于调用者使用; 优点:1.提高代码的复用性;2.提高了安全;3.隐藏了实现的细节,还要对外提供可以访问的方式,便于调 用者使用 3.可以在成员变量名前面加上this.来区别成员变量和局部变量 4.继承:在一个现有的类的基础上去构建一个新的类,构建出的新的类被称作子类,现有的类被称为父类,子类会自动拥有父类的属性和方法; 5.private修饰的方法和

Java面向对象---方法递归调用

递归调用是一种特殊的调用形式,即方法自己调用自己 public int method(int num){ if(num==1){ return 1; } else { return num+method(num-1); } } 描述:main方法调用method(5),在method方法中参数不等于1,则再调用method(4),一直到参数等于1,则依次返回.在该例中,参数等于1时,将1返回给method(2),依次类推,当返回到method(5)时,再将从1加到5的和返回给main方法.

Java面向对象---方法的创建与重载

方法的创建 方法就是可重复调用的代码段. 定义: 访问修饰符 返回值类型 方法名(参数){ 方法主体 } 返回值类型:void(无返回值):基本数据类型:应用数据类型:类对象等. 方法名的命名规则:第一个字母小写,多个单词之间,后面单词的第一个字母大写.如userName. 参数:方法参数可以没有,可以是一个,也可以是多个.参数数据类型与返回值类型一样,可以是任意数据类型. 方法的重载 方法名相同,但是参数的类型或个数不同.通过传递的数据类型的不同或参数个数的不同来完成不同的功能.