JAVA编程中的类和对象

1:初学JAVA,都知道JAVA是面向对象的编程。笔者这节开始说说类和对象。(实例仅供参考,如若复制粘贴记得修改包名和类名,避免出错)

学习JAVA的快捷键,Alt+/代码补全功能,其实此快捷键启动了Eclipse代码辅助菜单,Shift+Ctrl+o快捷键导入包

Ctrl+F可以快速查找API,中文版API,百度云链接:http://pan.baidu.com/s/1slQWhCL 密码:cfxo

首先

对象的创建:类名  对象名=new 类名();也许大多数学习java的都会写,但是理解方面是这样的,

new一个类名,就会得到一个对象,而这个对象的类型就是这个类名的类型

比如说:Car car=new Car();//就是通过new一个Car类名,得到car这个对象,而这个对象就是Car类型的

2:类必须先定义才能使用。类是创建对象的模板,创建对象也叫类的实例化。

package com.cnblogs;//定义包的格式,关键词package,包的名字最规范的格式是域名的反写,比如com.什么 public class People {//class关键字,定义类的关键字,People是类的名称     public String name;//类的属性     public String sex;     public int age;   

 //类的方法      public void sleep(){         System.out.println("人疲倦的时候喜欢睡觉觉");     }     public void eat(){         System.out.println("人饥饿的时候喜欢吃饭饭");     }     public static void main(String[] args) {//主函数         People p=new People();//对象的实例化         p.eat();//调用类的方法         p.sleep();     }

} 3:构造方法

构造方法的名称必须与类的名称相同,并且没有返回值。 每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认的构造方法。

package com.cnblogs; public class People {     public String name;     public String sex;     public int age;     public People(){//默认的构造方法,初始化对象的时候调用默认构造方法         System.out.println("类默认的构造方法,不含参数");     }     public People(String name){//含参的构造方法         System.out.println("含参的构造方法");     }     public void sleep(){         System.out.println("人疲倦的时候喜欢睡觉觉");     }     public void eat(){         System.out.println("人饥饿的时候喜欢吃饭饭");     }     public static void main(String[] args) {         People p=new People();         p.eat();         p.sleep();     } }

4:Java 通过修饰符来控制类、属性和方法的访问权限和其他功能,通常放在语句的最前端。

权限(访问)修饰符关键字包含:public ,private ,protected,另外一个就是默认的;

public:对所有类可见,包含本类,同包其他类或者子类,其他包的类或者子类

protected:对本类可见,对同包其他类或者子类可见,对其他包的类或者子类不可以见

private:只对本类可见,对同包其他类或者子类不可见,对其他包的类或者子类不可以见

默认:则是对同一包内可见

实例如下:

package com.cnblogs; public class Men {     public String name;//共有属性     private int age;//私有属性     protected String sex;//受保护的属性     int a=10;//默认的 }

5:变量的作用域,包含全部变量和局部变量

举例如下

package com.cnblogs; public class Men {     //全部变量,在整个作用域都可以使用     public String name;//共有属性     private int age;//私有属性     protected String sex;//受保护的属性     int a=10;     public static void main(String[] args) {         //定义的i是局部变量,只可以在for循环这个局部内进行使用         for(int i=0;i<10;i++){             System.out.println("局部变量,在可以在局部进行使用"+i);         }     } }

6:this关键字

this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性。

成员变量与方法内部的变量重名时,希望在方法内部调用成员变量,怎么办呢?这时候只能使用this。

作为方法名来初始化对象,也就是相当于调用本类的其它构造方法,它必须作为构造方法的第一句。

作为参数传递,需要在某些完全分离的类中调用一个方法,并将当前对象的一个引用作为参数传递时。

举例如下

package com.cnblogs; public class Dog {     int a=21;     int b=12;     public Dog(){//this关键字作为方法名来初始化对象         this(23,43);     }     public Dog(int a, int b) {         // TODO Auto-generated constructor stub         this.a=a;         this.b=b;         System.out.println(a+" "+b);     }     public void add(){//通过this关键字可以调用类的属性和方法         int c=this.a+this.b;         System.out.println(c);     }     public void setA(int a){//使用this关键字区分同名变量         this.a=a;     }     public int getA(){         return a;     }     public static void main(String[] args) {         // TODO Auto-generated method stub         Dog d=new Dog();         d.add();         d.setA(44);         int dd=d.getA();         System.out.println(dd);     } } 7:JAVA中方法的重载(构造方法也可以重载)

即方法的名字相同,而方法的参数类型,个数,顺序不同即为方法的重载

注意1:声明为final的方法不可以重载,声明为static的方法不能被重载,但是能够被再次声明。

注意2:仅仅是返回值类型不同,不能构成方法的重载

举例如下:

package com.cnblogs; public class Cat {     public void cat(){         System.out.println("方法的重载");     }     public void cat(int a,int b){         System.out.println("方法的重载,方法中参数的个数");     }     public void cat(String c,int d){         System.out.println("方法的重载,方法中参数的类型不同");     }     public void  cat(int e,String f){         System.out.println("方法的重载,方法中参数顺序不同");     }     public static void main(String[] args) {         // TODO Auto-generated method stub     } }

8:包装类(Wrapper Classes),拆箱和装箱

基本类型和对应的包装类可以相互装换:

由基本类型向对应的包装类转换称为装箱,例如把double包装成 Double 类的对象;

包装类向对应的基本类型转换称为拆箱,例如把 Integer 类的对象重新简化为 int。

package com.cnblogs; public class Sun {     public static void main(String[] args) {         // TODO Auto-generated method stub         int a=32;         Integer i=new Integer(a);         System.out.println("手动进行装箱"+i);         int a2=i.intValue();//此方法的作用是以int值返回此Integer对象         System.out.println("手动进行拆箱"+a2);

   int a4=54;         Integer i4=a4;//自动装箱         System.out.println("自动进行装箱"+i4);     } }

重点笔记,加强理解多态的含义

多态存在的三个必要条件:

  • 继承
  • 重写
  • 父类引用指向子类对象

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏超然的博客

ECMAScript 6 笔记(四)

  ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript语言的第七种数据类型,前六种是:Undefined、Null、布尔值...

782
来自专栏Java技术分享

怎样理解 java 注解和运用注解编程?

完整源码下载地址 GitHub - MatrixSeven/JavaAOP: 一个基于原生JDK动态代理实现的AOP小例子 使用反射结合JDK动态代理实现了类似...

2529
来自专栏Albert陈凯

TimeUtil类所有方法

TimeUtil类的方法.png public static final String DATE_FORMAT = "yyyy-MM-dd"; /** ...

3346
来自专栏用户2442861的专栏

JAVA反射机制作用是什么

Java的反射机制是Java特性之一,反射机制是构建框架技术的基础所在。灵活掌握Java反射机制,对大家以后学习框架技术有很大的帮助。

1002
来自专栏小勇DW3

Conccrent中 Unsafe类原理 以及 原子类AutomicXX的原理以及对Unsafe类的使用

Java中基于操作系统级别的原子操作类sun.misc.Unsafe,它是Java中对大多数锁机制实现的最基础类。请注意,JDK 1.8和之前JDK版本的中su...

832
来自专栏向治洪

java基础之反射

Contents java基础巩固笔记(1)-反射 反射 反射基本使用 数组的反射 配置文件加载 内省(Instropector) & JavaBean ...

1796
来自专栏yl 成长笔记

c# 委托(Func、Action)

以前自己写委托都用 delegate, 最近看组里的大佬们都用 Func , 以及 Action 来实现, 代码简洁了不少, 但是看得我晕晕乎乎。 花点时间研究...

1453
来自专栏lgp20151222

详解Java构造方法为什么不能覆盖,我的钻牛角尖病又犯了....

但是,看了输出,我就纳闷为什么,为什么第三行不是BigEgg2.Yolk(),不能覆盖吗?

1192
来自专栏MyBlog

Effective.Java 读书笔记(4)非实例化

有时你想要编写一个类,这个类只是静态方法和静态域的组成,这样的一个类获得一个糟糕的名声因为一些人滥用他们为了避免对对象的术语进行思考,但是他们的确是有用的

622
来自专栏java一日一条

JDBC为什么要使用PreparedStatement而不是Statement

PreparedStatement是java.sql包下面的一个接口,用来执行SQL语句查询,通过调用connection.preparedStatement(...

542

扫码关注云+社区