java类和对象笔记_Java学习笔记--类和对象

1.介绍面向对象的编程

面向对象是现在主流的编程样例,它替代了以前C语言使用时的“结构体”,Java是一门面向对象的语言,所以需要熟悉面向对象的概念。面向对象的程序由很多对象组成,每个函数对于用户而言,都有特殊的功能。程序里面的很多对象都可以直接从公共库里面拿来直接用。不用去研究这些功能怎么去实现的。传统的结构的编程由一系列算法步骤来解决问题。一旦这些步骤确定下来,也要同时确定存储数据的方式。也就是数据结构一开始学习的:算法+数据结构=程序。

先决定算法,再决定使用什么样的结构来存储数据,此时比较利于解决小的问题,但是遇到大的问题就要使用面向对象的方法。

使用原本的方法,全局的数据按照程序的步骤来存储,如果发现数据有问题,就要一步一步去找。但是如果是存在对象里面,然后通过方法来操作这些数据,只需要从这些方法那边去找就能找到数据。

类就是对象生成的蓝图,当你通过类生成一个对象,也可以说是创造了类的一个实例。在类中写代码,而且标准的Java库中有上千种类,用于不同的目的,比如用户接口,日期和日历,网络编程。此外,你可以根据你所要解决的问题,创造自己的类来描述对象。

封装是类思想中一个很重要的概念,对用户而言,封装将数据和行为存在一个包里面,隐藏了实现的细节。存储数据的地方成为实例区,对数据的操作称为方法,这些就是对象的一个状态,当你唤醒一个对象的类时,这些状态就会改变。封装最重要的思想就是有了方法,通过方法来访问数据,禁止直接访问类的数据区和其他地方,使得对象看起来像个黑盒,这样才是可重用的和可靠的。这意味着类完全改变了存储数据的方式。

2.类

例子:比如

public class Circle {

private static double radius;

private static double PI = 3.14159;

public void SetTheRadius(double r){

radius = r;

}

public double GetTheArea()

{

return PI*radius*radius;

}

}

对象的状态定义为数据区的值,上述例子中的Circle的例子,其中有半径作为它的状态,半径有很多种,可以通过相面方法来改变值。相同类的对象,用公共类来定义,然后可以生成对象,有不同的圆,也就可以设置不同的值。例如

1.Class Name: circle1

Data Field:

radius = 10;

2. Class Name :Circle2

Data Field

radius = 15:

也就是说用上面的圆类生成了两个圆的对象,其中这两个圆的半径分别为10 和 15,不过例子中的类没有main 函数,所以说不能够运行。

以后在使用类和对象可以按照下面的构造函数和方法:

构造函数的名字和类的名字一样

ClassName(parameterName : parameterType)

方法:

methodName(parameterName: parameterType) returnType

3. 使用构造函数来构造对象

构造函数是一种特殊的方法:

1 构造函数的命名和类的名字一样

2      构造函数没有返回类型—(void是返回为空)所以不是void

3 创造对象的时候构造函数使用了new操作,构造函数用于初始化对象

例如上面的圆的例子

public class Circle {

private static double radius;

Circle(){

radius = 0; }

}

在上面的例子中的初始化操作为

Circle object1 = new Circle();

在这个例子中,生成对象的时候调用了new 操作,如果说在上面的Circle()构造前加入了void 此时就变成了方法

4通过方法来传递参数

如果要修改每个对象的状态,也就是数据区时,可以通过方法来修改,或者是得到数据。

例子

class Student {

String name; // name has default value null

int age; // age has default value 0

boolean isScienceMajor; // isScienceMajor has default value false

char gender; // c has default value

}

上述这个关于学生的类,其中的状态就是学生的姓名,年龄,是不是选修科学,性别,然后可以通过方法来修改这些状态,或者得到这些值

public void SetTheName(String na){

name = na;

}

public String GetTheName(){

return name;

}

其他的状态修改类似,可以按照如下的例子来使用

public class ComputeAreaaa {

public static void main(String[] args){

Circle object1 = new Circle();

object1.SetTheName("Harker'Circle");

System.out.println("The name of the Cirlce is "+object1.GetTheName());

}

}

此时看看console 写了什么

小结: 这个可以归为一类的问题:

我们为了解决某个问题定义了一个类,然后生成了一个对象,其中调用某些方法来修改对象的状态(数据区的值),其实也很像状态量和控制量的关系,一个描述我们遇到的客体,然后另一个量来修改状态,此时也可以想象生活中的例子:TV,电视有个状态是 ON或者是OFF,这两个状态要有某个操作能切换。

Note 原始量和引用量的差异

原始类型的数据 比如 int i = 1;

对象类型的引用量,比如Circle C,此时里面的数据,比如半径,但是当你将一个变量赋值为另一个数的时候,会有以下的情况:

执行c1 = c2 的操作:

操作前:

操作后:

只是改变了C2所指向的内容。

5使用Java库中的类

可以使用Java库中本来就有的类:

1 时间类 java.util.Date

public class TimeClass {

public static void GetTime(){

java.util.Date date = new java.util.Date();

System.out.println("The elapsed time since Jan 1, 1970 is" +

date.getTime()+"milliseconds");

System.out.println(date.toString());

}

}

2 产生随机数的类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值