一、成员属性,构造方法,成员方法

1、类名首字母一般大写

2、方法名的首字母一般是小写,使用驼峰法(匈牙利法) myCry, 下划线法 my_cry

3、方法的声明没有函数体(接口,抽象类),数据类型甚至可以是类

4、构造方法(构造函数),a、方法名和类名相同,b、没有返回值,c、在创建一个类的新对象时,系统会自动的调用该类的构造方法完成对新对象的初始化

一个类可以定义多个构造方法

5、每个类都有一个默认构造方法(构造函数),如果新写了构造函数,则默认构造函数会被覆盖

6、构造方法的主要用处是初始化你的成员属性(成员变量),不要在函数内写方法

二、this,类变量(静态变量)/类方法,四大特征(抽象,封装,继承,多态)

1、this是属于一个具体的对象的,而不是属于一个类,当创建一个对象,this自动指向该对象

this只能在类定义内部使用,不能做外部使用

2、静态变量,可以被该类任何一个对象访问,也可以用类名访问

3、代码区和栈区的区别

4、静态方法(来方法)只能访问静态变量(类变量),非静态方法可以访问静态和非静态变量

5、抽象的概念:

6、封装的概念:

7、四种控制修饰符:private 默认 potected public

8、包的概念:

9、继承:子类最多只能继承一个父类(指直接继承),java中所有类都是Object类的子类

10、方法的重载(overload):函数名相同,方法的参数类型、个数、顺序至少有一项不同,仅仅返回类型不同不能构成重载,仅仅控制访问修饰符可以不同不能构成重载

11、方法的覆盖(override):重写父类的方法

12、多态:指通过指向父类的指针,来调用在不同子类中实现的方法

  1. /**
  2. * 演示多态
  3. */
  4. package com.wang;
  5.  
  6. public class Demo5 {
  7.  
  8. public static void main(String[] args) {
  9. // TODO Auto-generated method stub
  10.  
  11. //多态
  12. /* Cat2 cat = new Cat2();
  13. cat.cry();
  14. Dog2 dog = new Dog2();
  15. dog.cry(); */
  16.  
  17. /* Animal2 an = new Cat2();
  18. an.cry();
  19. an = new Dog2();
  20. an.cry(); */
  21.  
  22. Master master = new Master();
  23. master.feed(new Dog2(), new Bone());
  24. master.feed(new Cat2(), new Fish());
  25. }
  26.  
  27. }
  28.  
  29. //主人类
  30. class Master{
  31. //给动物喂食,使用多态方法就可以使用一个
  32. public void feed(Animal2 an, Food f){
  33. an.eat();
  34. f.showName();
  35. }
  36.  
  37. }
  38.  
  39. class Food{
  40. String name;
  41. public void showName(){
  42.  
  43. }
  44. }
  45. class Fish extends Food{
  46.  
  47. public void showName(){
  48.  
  49. System.out.println("鱼");
  50. }
  51. }
  52. class Bone extends Food{
  53.  
  54. public void showName(){
  55.  
  56. System.out.println("骨头");
  57. }
  58. }
  59. //动物类
  60. class Animal2{
  61. String name;
  62. int age;
  63.  
  64. public String getName() {
  65. return name;
  66. }
  67. public void setName(String name) {
  68. this.name = name;
  69. }
  70. public int getAge() {
  71. return age;
  72. }
  73. public void setAge(int age) {
  74. this.age = age;
  75. }
  76.  
  77. public void cry(){
  78. System.out.println("我是动物总类");
  79. }
  80.  
  81. public void eat(){
  82. System.out.println("动物吃东西");
  83. }
  84.  
  85. }
  86.  
  87. class Cat2 extends Animal2{
  88.  
  89. public void cry(){
  90. System.out.println("我是猫,喵喵喵");
  91. }
  92. //猫吃鱼
  93. public void eat(){
  94. System.out.println("猫喜欢吃鱼");
  95. }
  96. }
  97.  
  98. class Dog2 extends Animal2{
  99.  
  100. public void cry(){
  101. System.out.println("我是狗,汪汪汪");
  102. }
  103. //狗吃骨头
  104. public void eat(){
  105. System.out.println("狗喜欢吃骨头");
  106. }
  107. }

13、java允许父类的引用变量引用它子类的实例(对象)    Animal2 animal = new Cat2() 这种转换是自动完成的

14、子类转父类,父类转子类

                                                                                          韩顺平老师的视频

java系列--类和对象的更多相关文章

  1. 第31节:Java基础-类与对象

    前言 Java基础-类与对象,方法的重载,构造方法的重载,static关键字,main()方法,this关键字,包,访问权限,类的继承,继承性,方法的重写,super变量. 方法的重载:成员方法的重载 ...

  2. Java面向对象-类与对象

    Java面向对象-类与对象 类与对象的关系 我们通俗的举个例子,比如人类是一种类,张三这个人就是人类的具体的一个个体,也就是java中的对象:这就是一个类与对象的关系: 类的定义 下面看实例 类的创建 ...

  3. 关于Java构造类与对象的思考

    简单记录一下Java构造类与对象时的流程以及this和super对于特殊例子的分析. 首先,接着昨天的问题,我做出了几个变形: Pic1.原版: Pic2.去掉了T.foo方法中的this关键字: P ...

  4. java 面向对象 — 类和对象

    构造方法 1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名) 2.每个类可以有一个以上的构造器 3.构造器可以有0个.1个或1个以上的参数 4.构造器没有返回值 5.构造器 ...

  5. JAVA基础——类和对象

    java类与对象学习笔记 一.成员变量和局部变量 (1)定义 1.成员变量 在类中定义,用来描述对象将要有什么.(默认的成员变量值为0) 2.局部变量 在类的方法中定义,在方法中临时保存数据. 演示示 ...

  6. java(9)类和对象

    一.理解什么是类和对象 万事万物皆对象 1.1.属性——对象具有的特征(特点) 1.2.方法——对象可执行的操作(能干什么事) 1.3.对象的定义: 是一个客观存在的,看的见或摸得着的实体,由属性和方 ...

  7. Java面向对象——类,对象和方法

    1.类的概念 在生活中,说到类,可以联想到类别,同类,会想到一类人,一类事物等等.而这一类人或事物都是具有相同特征或特点和行为的,我们根据不同的特征或特点和行为将他们归类或分类.同时,当我们认识一个新 ...

  8. Java学习——类与对象

    在学习面向对象之前首先我们要理解一下几点: 什么是面向对象 对象的概念 类 类与对象的关系/区别 什么是对象的属性 什么是对象的方法 什么是面向对象.对象.类 讲到面向对象就不得提到面向过程,早期的计 ...

  9. Java面向对象类与对象整理

    第一章           面向对象: 1.1         什么是面向过程: 遇到某件事的时候,思考 “我该怎么做”然后一步一步实现的过程 1.2         什么是面向对象: 遇到某件事的时 ...

随机推荐

  1. IP地址、子网掩码详解

    如何通过子网掩码划分网段 资料一: 一.缺省A.B.C类地址,子网掩码:  二.子网掩码的作用:  code:  IP地址 192.20.15.5 11000000 00010100 00001111 ...

  2. 第13章 Swing程序设计----常用面板

    面板也是一个Swing容器,它可以作为容器容纳其他组件,但它也必须被添加到其他容器中. Swing常用的面板包括JPanel面板和JScrollPanel面板. 1.JPanel面板 import j ...

  3. 服务器修改 ssh 22端口

    我们首先修改配置文件,让ssh 通知支持2个端口访问 ,22 和 23456 端口. Port 22 Port 23456 为什么要这样: 万一我用 23456端口替换了22端口,但是 23456正好 ...

  4. HDU 1074 Doing Homework(状态压缩)

    之前做过一个题,是在学贪心的时候做的,所以这个题就想当然的跑偏了,当看到N是<=16 的时候,状态压缩就理所当然了 #include<iostream> #include<cs ...

  5. 原创:LoadTest系列之Local.testtings之Web Test

    在录制脚本后,需要对脚本进行回放,而在Loal.testting的Web Test设置中,可以设置脚本运行的次数,以及是否考虑think time等,如下图所示: 1. 双击Solution Item ...

  6. 用扩展方法实现DevExpress-GridControl级联效果

    首先,让我们先回顾下.Net中扩展方法的特征: 1.  必须在一个非嵌套.非泛型的静态类中: 2.  至少有一个参数(this 作前缀的参数): 3.  第一个参数必须附加this做前缀: 4.  第 ...

  7. zencart_magiczoom

    mod_zencart_magiczoom使用   一.复制相应文件到相应目录. 二.安装sql文件. 三.按照正确命名上传商品图片,一般需要中图跟大图. 四.程序运行时会在images目录下创建ma ...

  8. 用apache配置多个tomcat webapp

    The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for m ...

  9. Android4.2以后,多屏幕的支持 学习(一)

    前几天总结了Android的多用户支持,过几天准备再总结Android的多屏支持.Android支持3种类型屏幕:主屏幕(Primary Display).外屏幕(External Display)和 ...

  10. 转 使用 HttpClient 4 进行文件上传

    http://www.tuicool.com/articles/Y7reYb 1. 概述 本教程我们将描述如何使用 HttpClient 4进行一次多文件上传操作 . 我们将使用  http://ec ...