java学习笔记5——对象以及包,类和方法

这部分对java面向对象的概念进行一个大致的说明。

一、对象

  相信大家肯定知道,java是一种面向对象的编程语言,而C是一种面向过程的编程语言,那么,什么是面向对象的思想呢?
  对象可以是一个个体,可以是一个类别。世间万物皆对象。
  还是很模糊?再直白点,你这个个体,就是一个对象。一个地球,也是一个对象。一台电脑,也是一个对象。
  举个例子,开灯,如果用c这种面向过程的语句要怎么去思考,那就是:开关闭合,电路通了,灯泡通电,电使得灯丝发光。这是一个过程,那么用java怎么去理解呢,在这里,灯是一个对象,发光发亮是灯泡的一个功能,一个性质,所以,我们只要分析灯就行了,灯打开开关,灯发光。是不是对于c来说,简单了很多呢。
  如果大家还不理解,就先记住,等学下去会加深理解的
  这里要说一个领域对象的概念:

javabean

JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。

public class Bean{  
   private String name;  
   private int age;  
   public void setName(String name){  
        this.name = name;  
   }  
    public void setAge(int age){  
        this.age = age;  
    }  
    public String getName(){  
        return this.name;  
    }  
    public int getAge(){  
        return this.age;  
    }  
    public Bean(){

    }//我是无参构造器
}  

  上述就是一个javabean,提供了set和get方法以及无参数的构造器,即最后一个方法。
对于简单的JavaBean也有几个名词:
1. VO:与简单Java对象对应,专门用于传递值的操作上
2. POJO:简单Java对象
3. TO:传输对象,进行远程传输时,对象所在的类必须实现java.io.Serializable接口。
这里大家可以了解一下。

二、包,类以及方法

  在eclipse中(其他开发工具也一样),java代码的管理都是以工程–>包–>类–>方法,这样子的存储方式的:
这里写图片描述
  其实本质就是文件夹,这个同学们可以自己去实验,到workspace看一下就知道了。这里不细说。
那么包,类,方法和对象有什么关系呢?
  对象是在类的基础上建立的。类可以简单的理解为模板,而对象即在这个模板上制作出来的产品。类是一类物体的共同特性的抽象。对象是类的一个实例。或许现在大家不理解,但是可以记住这句话,在以后的开发实践中会慢慢理解的。

(一)、包

  包的命名一般是域名的反转,为了便于管理代码。比如假设是百度在写代码,那么就是com.baidu.名称

(二)、类

说到类,这里就提一下修饰符,看上面图片中

public class Demo{}
修饰符  类    类名

java的访问控制修饰符有public ,private,protect,default
他们的作用范围是:

访问权限子类其他包
public
protect×
default××
private×××

类中能出现的内容:全局变量,方法,代码块,内部类
那么怎么可以建立对象呢,主要有一下方法:

  1. 使用new关键字:这是我们最常见的也是最简单的创建对象的方式,通过这种方式我们还可以调用任意的够赞函数(无参的和有参的)。比如:Demo demo= new Demo();
  2. 使用Class类的newInstance方法:我们也可以使用Class类的newInstance方法创建对象,这个newInstance方法调用无参的构造器创建对象,如:Demo demo2= (Demo)Class.forName("根路径.Demo").newInstance(); 或者:Demo de= Demo.class.newInstance();
  3. 使用Constructor类的newInstance方法:次方法和Class类的newInstance方法很像,java.lang.relect.Constructor类里也有一个newInstance方法可以创建对象。我们可以通过这个newInstance方法调用有参数的和私有的构造函数。如: Constructor<Demo> constructor = Demo.class.getInstance(); Demo de= constructor.newInstance(); 这两种newInstance的方法就是大家所说的反射,事实上Class的newInstance方法内部调用Constructor的newInstance方法。这也是众多框架Spring、Hibernate、Struts等使用后者的原因。
  4. 使用Clone的方法:无论何时我们调用一个对象的clone方法,JVM就会创建一个新的对象,将前面的对象的内容全部拷贝进去,用clone方法创建对象并不会调用任何构造函数。要使用clone方法,我们必须先实现Cloneable接口并实现其定义的clone方法。如:Demo demo2= <Demo>demo.clone();这也是原型模式的应用。
  5. 使用反序列化:当我们序列化和反序列化一个对象,JVM会给我们创建一个单独的对象,在反序列化时,JVM创建对象并不会调用任何构造函数。为了反序列化一个对象,我们需要让我们的类实现Serializable接口。如:ObjectInputStream in = new ObjectInputStream (new FileInputStream("data.obj")); Demo demo3= (Demo)in.readObject();
(三)、方法

  学过C语言的可以进行最直观的理解,方法就是函数,是在类中定义了具体特定功能的一段程序。一般表形式为:

修饰符  返回时   方法名(参数类型 1 参数名1,参数类型2 参数名2……){
    执行语句;
    return 返回值;
}

代码:

  public static void main(String[] args) {
      System.out.println("我是mian方法");
  }
  public int method(int i) {
    return i;
  }

  上面是两个方法,第一个是特殊的main方法,它是所有程序的入口。第二个是在类中的方法。
  方法中有两个概念:重写,重载

1、方法的重载

方法名相同,形式参数不同这种行为叫做方法的重载 。

  public int method(int i) {
    return i;
  }

  public int method(int i, double j) {
    return i;
  }

  public int method(double j, int i) {
    return i;
  }

  如上面的代码,在一个类中,相同的方法在一定的条件下可以共存。只要里面的形式参数个数,类型以及位置不同就行。第二个和第三个也是不会报错的,因为位置不通。

2、方法的重写

  这里先不做阐述,等到了继承的时候再讲。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值