Java面向对象【上】超详细保姆级讲解 零基础也能学懂

本文详细探讨了Java中的成员变量作用域、面向对象与面向过程的区别,重点讲解了数据域封装的原理和实践,包括私有化与访问器、修改器的使用。通过实例演示Circle类和JavaBean的概念,以及如何向方法传递对象参数。
摘要由CSDN通过智能技术生成

目录

成员变量作用域:

面向过程和面向对象的区别:

数据域封装

向方法传递对象参数

this:

JavaBean


成员变量作用域:

  • 在类的任何地方都有效
  • 非静态变量,只有在创建对象时,才会分配空间并赋值
  • 对象调用并执行某方法之后,成员变量的值发生变化

面向过程和面向对象的区别:

面向过程:

分析出解决问题的步骤,用函数把这些步骤一步一步实现,使用时依次调用。

面向对象:

把问题分解成对象,建立对象的目的是为了描述某个事物在解决问题的步骤中的行为。


数据域封装

将数据域设为私有 可以保护数据,使类易于维护

封装的原因:

1.数据可能被篡改

2.使类难以维护,同时容易出现错误

  • 私有数据域不能被类外(定义该私有域的)访问。
  • 为了访问私有数据域,可提供一个获取方法(getter)返回数据域的值。又叫访问器
  • 为了更新私有数据域,可提供一个修改方法(setter)‘给数据域设置新值。又叫修改器
public class Circle{
    
private double radius = 1;
private static int numberOfObjects = 0;//圆的个数

public Circle(){//无参构造器
numberOfObjects++;
}

public Circle(double newRadius){//有参构造器
radius = newRadius;
numberOfObojects++;
}
public double getRadius(){//获取半径的方法
return radius;
}
public void setRadius(double newRadius){//修改半径的方法
radius = newRadius;
}
public static int getNumberOfObjects(){//获取圆个数的静态方法
return numberOfObjects;
}
public double getArea(){//获取圆面积的方法
return radius*radius*Math.PI;
}
}

public class TestCircle{//客户类
    public static void main(String[] args){
        Circle myCircle = new Circle(5.0);
        System.out.println("The area of the circle of radius"+myCircle.getRadius()+"is"+myCircle.getArea());
        
        myCirlce.setRadius(myCircle.getRadius()*1.1);
        System.out.println("The area of the circle of radius"+myCircle.getRadius()+"is"+myCircle.getArea());
        
        System.out.println("The number of objects created is"+Circle.getNumberOfObjects());
            
    }
}

小结:

数据域radius被私有化的,不能修改。私有数据只能在定义他们的类中进行访问,不能在客户类中访问。


向方法传递对象参数

给方法传递一个对象,是将对象的引用 传递给方法。

将myCircle对象作为参数传递给printCircle方法

public class Test{
    public static void main(String[] args){
        Circle myCircle = new Circle(5.0);
        printCircle(myCircle);
    }
    public static void printCircle(Circle c){  
        System.out.println("The area of the circle of radius"+c.getRadius()+"is"+c.getArea());
    }
}

Java参数传递方式:值传递

传递基本数据类型的参数时,传递的是实参的值

传递引用类型的参数时,传递的是对象的引用

引用上的按值传参描述为按共享传参,在方法中引用的对象和传递的对象是一样的。


this:

this()不能使用在普通方法中,只能在构造,必须是构造的第一条语句

this.方法名称     用来访问本类的成员方法

this();                 访问本类的构造方法

()中如果有参数,就是调用指定的有参构造

举个例子:

this.属性=形参

p1=this

p1.age=this.age


JavaBean

javaBean是一种java语言写的可重用组件

码字不易 留个关注再走吧~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值