java类与对象的最初理解

一、面向对象编程的三个特性
1)封装
面向对象编程核心思想之一就是将数据和对数据的操作封装在一起。通过抽象从具体的实例中抽取共同的性质形成一般的概念,比如类的概念。
人们经常谈到的机动车类就是从具体的实例中抽取共同的属性和功能形成的一个概念,那么一个具体的轿车就是机动车类的一个实例,即对象。
一个对象将自己的数据和对这些数据的操作合理有效地封装在一起,例如,每辆轿车调用“加速”、“减速”改变的都是自己的运行速度。
2)继承
继承体现了一种先进的承接历史的编程模式。子类可以继承父类的属性和功能,即继承了父类所具有的数据和对数据的操作,同时又可以增添子类独有的数据和对数据的操作。
3)多态
多态是面向对象编程的又一重要特征。
有两种意义的多态。
一种是操作名称的多态,即有多个操作具有相同的名字,但这些操作所接收的参数类型必须不同。
另一种多态是和继承有关的多态,是指同一个操作被不同类型对象调用时可能产生不同的行为。
在这里插入图片描述
3.2封装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
也可以把另一个类放在同目录下的其他文件里
加载形成两个类,有psvm的为主类,运行主方法(psvm为主方法),用cmd运行时要运行“java --带主方法的类—”

package com.example;
//加载形成两个类,有psvm的为主类,运行主方法(psvm为主方法),用cmd运行时要运行“java --带主方法的类---”
import java.io.PrintStream;

public class javahello_2 {
    public static void main(String[] args) {
    Circle2 circle;
    circle=new Circle2();
    circle.radius=100;
    double are=circle.getARE();
        System.out.println(are);
    }
}

class Circle2 {
    double radius;
    double getARE(){
        double are=3.14*radius*radius;
        return are;
    }
}

在主方法中可以 new主类

class Circle {
    double radius;
    double getARE(){
        double are=3.14*radius*radius;
        return are;
    }

    public static void main(String[] args) {
        Circle circle;
        circle=new Circle();
        System.out.println(circle.toString());///返回一个object字符串
    }
}


class ComputerCircleArea {    //包内可见
	
   public static void main(String args[]) {
       double radius;     //半径
       double area;       //面积
       radius=100;
       area=3.14*radius *radius; //计算面积
       System.out.printf("半径是%5.3f的圆的面积:\n%5.3f\n",radius,area);
   }
} 
public class Circle2{
	  double radius;     //半径
    double area;       //面积
    private double getArea(){
    	Circle2 c1;   
    	return 3.14*radius*radius;
    	}
		public static void main(String sf[])		{
		Circle2 c;
		c=new Circle2();	//Object
		c.radius=10;
		System.out.println(c.getArea());   //Circle2@15db9742
	}
}

class CircleTest{

		public static void main(String sf[])		{
		Circle2 c;
		c=new Circle2();	//Object
		c.radius=10;
		System.out.println(c.getArea());   //Circle2@15db9742
	}
}

在这里插入图片描述在这里插入图片描述
例子
在这里插入图片描述
this
在这里插入图片描述

分别用do-while和for循环计算1+1/2!+1/3!+1/4!… … 的前10项和

package com.example;

///Jisuanqi1 是for Jisuanqi2 是dowhile 同时输出,结果一样
public class javahello_2 {
    public static void main(String[] args) {
        Jisuanqi1 jisuanqi1=new Jisuanqi1();
        Jisuanqi2 jisuanqi2=new Jisuanqi2();
        double ans2=0,ans1=0;
        int n=10;
        for(int i=1;i<=n;i++)
        {
            ans1+=1/jisuanqi1.jiecheng(i);
            ///
          //  System.out.println(jisuanqi1.jiecheng(i));
            ///
        }
        int i=1;
        do {
            ans2+=1/jisuanqi2.jiecheng(i);
            ///
            //System.out.println(jisuanqi2.jiecheng(i));
            ///
            i++;
        }while (i<=n);



        System.out.println(ans1+" "+ans2);

    }
}

class Jisuanqi1{
    double a;
    double ans;
    double jiecheng(double a){一定要重新赋值
        this.a=a;
        this.ans=1;
        for(int i=1;i<=a;i++)
        {
            ans*=i;
        }
    return ans;
    }

}
class Jisuanqi2{
    double a;
    double ans;
    int i;
    double jiecheng(double in){
        ans=1;
        i=1;
        a=in;
        do{
            ans*=i;
            i++;
        }while (i<=a);
        return  ans;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值