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);
    }

}

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

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

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

转载于:https://www.cnblogs.com/biehongli/p/5737612.html

JAVA编程中的类和对象相关推荐

  1. Java快速入门学习笔记7 | Java语言中的类与对象

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  2. java类描述_java笔记2:Java语言中的类和对象的描述

    在Java 语言中,除8 个基本数据类型值之外, 一切都是对象,而对象就是面向对象程序设计的中心. 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还 ...

  3. 详解Java多线程编程中LockSupport类的线程阻塞用法

    转载自  详解Java多线程编程中LockSupport类的线程阻塞用法 LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语.LockSupport实际 ...

  4. Java面向对象编程篇1——类与对象

    Java面向对象编程篇1--类与对象 1.面向过程 1.1.概念 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了 1.2.优缺点 优点:性 ...

  5. java程序设计专业介绍_简介Java编程中的Object类

    这篇文章主要介绍了简介Java编程中的Object类,是Java入门学习中的基础知识,需要的朋友可以参考下 Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每 ...

  6. 面向对象系列教材 (一)- Java中的类和对象

    面向对象系列教材 (一)- Java中的类和对象 本章节会引入面向对象的基本概念 (但是不会深入展开,仅仅是引入. 深入的学习会在后续的类和对象以及接口与继承 中展开) 相信你肯定玩过DOTA或者LO ...

  7. 12月29日--Java中有关类与对象的学习记录

    1.12月29日第一课记录 Java中有关类与对象的学习记录 一.基本概念部分 1.类:具有相同.相似的属性.特征.行为方式以及功能的一类事物的总称 (举例:一类用户,如淘宝用户) 类是对象的模板 是 ...

  8. JAVA中的类和对象之this的详解

    系列文章目录 第一章 JAVA中的类和对象之this的详解 目录 前言 一.为什么要有this引用 二.this的三种用法 1.this.成员变量 2.this.成员方法 3.this()调用其它的构 ...

  9. 1~22(面向编程+ES6中的类和对象+类的继承+面向对象版tab栏切换)

    1 面向对象编程介绍 1.1 两大编程思想 面向过程 面向对象 1.2 面向过程编程POP(Process-oriented programming) 面向过程就是分析出解决问题所需要的步骤,然后用函 ...

最新文章

  1. python按日期排序_你如何在python中获得按创建日期排序的目录列表?
  2. 存储极简史一幅图你就都懂了
  3. [前端漫谈] 做一个四则计算器
  4. javascript语法_JavaScript传播语法简介
  5. java list_java中的list集合
  6. Linux——进程间通信(管道)
  7. et200s模块接线图讲解_西门子S7-1500使用ET200S 1SI模块实现自由口通信
  8. JAVA中解析XML和书写XML
  9. stm32打怪升级之再见闪烁灯
  10. 谭浩强C语言程序设计(1-3章代码学习)
  11. gitlab 生成ssh密匙
  12. mysql 5.7.21 winx64_mysql5.7.21 winx64安装配置图文分享
  13. 西门子变频器中文调试软件
  14. ubuntu16.04调试5G模组ZM9000
  15. 深度学习笔记(18)- 深度终端之一
  16. 攻防世界7分~部分8分题
  17. 美女图片在网站上的应用
  18. 超级计算机的功能是什么,电脑中的王者——超级计算机,你了解多少?
  19. 国产Linux:中标麒麟NeoKylin——ldconfig 不是符号连接
  20. idea的英文是什么意思_idea是什么意思_idea的音标_idea的复数_英语巴士双语词典...

热门文章

  1. JavaScript对数组的常见操作
  2. Java教程:Java字符串替换实例
  3. ceph搭建_如何一键搭建并管理Filecoin集群节点 | Gamma OS新功能上线
  4. word文档小方格怎么弄_word文档小方格怎么打勾
  5. Redis入门,Redis的安装
  6. Matplotlib - subplot(同一图中绘制不同的内容)
  7. keras笔记-mnist数据集上的简单训练
  8. Tensorlfow的可视化工具TensorBoard
  9. 【原创】自定义Appender类,输出DCMTK日志
  10. 【转】串口通讯—通信协议