面向对象:
  1.利用面向对象的语法,实现代码的拆分(数据存储:对象的传值)。
  2.利用面向对象的语法,实现程序的结构处理(继承,多态,接口,抽象类)。
  3.用面向对象的编程方法,理解实现程序开发的框架和开发模式。

  面向过程:代码与数据不相关,通过主函数确立

  

  面向对象:在定义类的时候,数据代码关联,把函数写在类内,而不是主函数内,最终目标是类拿过来就能用

  

学籍信息管理:(课上示例)
  管理的数据:班级,学生,老师(授课,班主任)。
  1.计算学生的考试成绩,需要补考的人数。
  2.计算出教师或学生的身高体重是否正常。

Java中的注释:
  单行(//注释内容),多行(/*注释内容*/):写在类中,函数中。
  文档注释(/**文档注释内容*/):定义在类中。有助于程序编写(生成帮助文档 doc文件,系统提示);

  项目——>右键——>导出(export)

Java中数据类型转换方式:
  基本数据类型之间转换:自动转换(值的大小小于被赋值变量大小),强制转换(值的大小大于被赋值变量大小)。
  复合数据类型之间转换,或复合数据类型和基本数据类型之间转换:使用数据类型转换的函数。
  Integer.toString();整型--->字符串
  Integer.parseInt();字符串--->整型
  Double.toString();浮点--->字符串
  Double.parseDouble();字符串--->浮点

Java类的定义:公有的,默认的。

  •   成员变量(属性):数据存储,数据结构维护。

    • 访问权限:公有的,私有的,受保护的,默认的。
    • 存储方式:默认的(动态存储),静态存储,只读存储,等。

      动态存储:默认的。在创建一个对象时,该成员变量,存储堆区。且创建的每一个对象都独立使用一块内存空间。
        对于此成员变量的访问只能通过对象名。
      静态存储:在定义成员变量时,加入static关键字。该成员变量在程序时,就已经存储在全局数据区,其创建不依赖于对象的创建。
        故,静态成员变量只有一个,被多个对象所共享。既可以通过对象名引用也可以通过类名引用(系统推荐通过类名)。

    • 数据类型:
  • 成员函数(方法):对本类中多定义的成员变量的相关的操作。

    • 访问权限:公有的,私有的,受保护的,默认的。
    • 存储方式:默认的(动态存储),静态存储,只读存储,抽象,同步等。

      动态存储:只能通过对象名称来调用。
        为动态成员变量服务的(一般都是写操作动态成员变量的代码,当然在其中也可以出现静态成员变量的访问)。
      静态存储:通过类名或对象名称来调用(推荐使用类名)。
        为静态成员变量服务的(只能写操作静态成员变量的代码)。

    • 函数的定义格式:返回值,函数名称,参数列表:

      函数在一般情况下,遵循先定义后使用的原则。
      函数的定义:参数叫做形参(只能变量,接受数据。占用内存空间)。
      函数的调用:参数叫做实参(变量,常量,表达式,发送数据的)。
        因为变量的作用域不同,需要在主调函数向被调函数传值时,需要通过参数。
      参数的传参的方式:
        值传递:参数的数据类型为基本数据类型时,都是值传递。
        地址传递:除了基本数据类型,都是地址传递。
        在被调函数向主调函数返值时,需要通过参数的地址传递或函数的返回值。

    • 函数重名:多态性。

      1.不同类中同名函数:在调用时通过类名或对象名区分调用的函数具体哪个函数。
      2.同一个类中同名函数:函数的重载。
      函数的重载规则:函数名相同,但函数参数的类型,个数,顺序,有一个不同。
        编译之前:
        void aa();
        int aa(int i);
        int aa(char i);
        String aa(int i,int j);
        String aa(int a,int b);
        String aa(int i,char j);
        String aa(char a,int b);
        编译之后:
        void aa();
        int aaint(int i);
        int aachar(char i);
        String aaintint(int i,int j);
        String aaintint(int a,int b);
        String aaintchar(int i,char j);
        String aacharint(char a,int b);
      3.函数重写:子类和父类中有同名函数,调用的是那个函数。

  • 构造函数:一般情况下访问权限是public,没有返回值,函数名称必须和类名同名,参数可以任意设定,也有函数重载。(java中乜有拷贝构造函数和析构函数)

    一个类可以存在多个构造函数,构造函数使用是在new创建一个对象时,自动调用的。某一个对象创建时,只能调用一个构造函数。
      构造函数创建:
      1.当在类中没有为其指定一个构造函数时,系统会为其自动添加一个构造函数,这个构造函数就做默认构造函数(无参数,无代码)。
        public 类名()
        {
          //默认构造函数
        }
      2.如果指定了类的构造函数,那么其默认的构造函数,系统将不会自动创建。
      3.构造函数不能显示调用,它是new对象调用,作用是用来进行对对象的初始化赋值。
        注意:创建一个对象时,先开辟内存空间,然后执行变量定义时赋值,最后才是执行构造函数赋值。
         final 作用于成员变量时,这个成员变量代表只读变量。只能在定义变量时,或构造函数中对其赋值一次。
          如果定义变量时赋值,在构造函数中就不能再次赋值(赋值一次,在new对象时)。
        this指针和this函数();
          this指针:代表本对象的内存地址。
          this函数:代表调用本类的其它构造函数。

类的定义习惯:
  1.动态成员变量私有访问权限,通过get,set方法来进行操作。静态成员变量直接定义公有的访问权限。
  2.定义两个构造函数(一个为无参构造函数,一个具有对该类所有成员变量进行初始化赋值参数的构造函数)

  Ctrl +A ——>Ctrl + I(界面美化)

  将很多行同时缩进:选中这些行 Tab(增加缩进) Shift+Tab (减少缩进)

  类成员 定义为私有——>选中函数——>右键——>Source——>getandset   (直接生成getName(),setName())

类的关系:组合(一个类包含另一个类,两个类分别创建实例),继承(一个类是另一个类功能扩展,只需要创建一个类实例)

  类的组合:

public class A
{
public int i=10;
}
public class B
{
public A a=new A();
public int i=10;
}
public static void main(String arg[])
{
B b=new B();
b.a.i;
b.j;
}

  

  类的继承:

public class A
{
public int i=10;
}
public class B extends A
{
public int i=10;
}
public static void main(String arg[])
{
B b=new B();
b.i;
}

继承特性:
  1.继承代码实现,继承的存储结构(和组合对比)。
  2.Java中所有的类彼此之间都有继承关系,所有类都继承Object类,将其称为基类。如果不手动设定一个类的父类,系统会默认其父类为Object类。
  3.一个类只能有一个父类(单一的继承),一个类可以有多个父接口(多重的继承)。
  4.在父类和子类同名成员变量。
    创建子类对象,其会先将父类的成员变量都创建出来,然后在创建其自己的成员变量。同名时,两个同名的成员变量分别占用自己的内存空间。
    对象名.成员变量、this.成员变量代表都是子类中的成员变量。在子类内部使用super.成员变量代表其父类同名成员变量。
    注意:子类不能直接查找其父类的父类的同名变量,需要通过其父类中转。
  5.super指针和super函数:super指针代表子对象中属于父对象部分内存空间的地址。super函数代表调用其父类的成员函数。
    如果在子类的够着函数中没有指定其调用其父类的哪一个构造函数,则系统默认调用父类的默认构造函数。否则,不再自动调用super函数。
  6.构造函数中:this函数和super函数,只能出现一个,因为这个函数的使用规则,都必须写在构造函数的第一行。

  7.在父类和子类同名成员函数。。。。

静态变量:存在于全局数据区,不以来于对象的创建

//班级类中
public ststc String no;
//主函数中
TClass.no = "001";——>通过类名引用(系统推荐)
   new TClass().no = "002";——>通过对象名引用

形参占用内存(栈区,调用函数时即生成)

字符串占2块内存,一是地址,二是内容 null和空字符串是不同的

TClass() {no="";} 等价于 在外边定义时private String no = null;

创建一个对象时,先开辟内存空间,然后执行变量定义时赋值,再执行构造函数(构造函数防止空指针异常)

Object java中的亚当夏娃,是所有类的父类

public class A {int i=10;}
public class B {int i=20;}
输出 b.i = 20

内存空间仍然存在,只是被自雷覆盖,内存结构如图

java培训(5-8节课)的更多相关文章

  1. java培训(1-4节课)

    课程安排:JavaEE方向(控制台程序,GUI程序,Web程序,手机程序)(dos命令是控制台程序:QQ是GUI程序,放在计算机上:QQ空间是Web程序,放在腾讯公司) 讲课的13本教材:C语言,Ja ...

  2. linuxprobe培训第1节课笔记2019年7月5日

    报了老刘的RHCE培训,这是老刘上课笔记简略版. 老刘在课上介绍了开源共享精神和大胡子(Richard M. Stallman—GNU创始人).linux发展史(Linus Benedict Torv ...

  3. linuxprobe培训第2节课笔记2019年7月6日

    使用VM虚拟机配置RHEL实验环境. 鉴于在笔记本上装过centos7,这章内容难度对我来说不是很大. 重置root管理员密码(RHCSA考题,第一题,做不出来无法进行下一步考试) e linux16 ...

  4. linuxprobe培训第3节课笔记2019年7月7日

    linux常用命令: echo:在终端输出字符串或变量提取后的值 date:显示及设置系统的时间或日期 reboot:重启 poweroff:关机 wget:下载 ps:查看系统中的进程状态(常用参数 ...

  5. Java第一节课动手动脑

    在第一节课的动手动脑中,主要解决四则运算问题. 首先第一个是出30道四则运算题目,在100以内.这个问题需要控制随机数生成的范围和结果的范围在100以内就可以. 第一次改进是3点:一为避免重复,二为定 ...

  6. [转][南京米联ZYNQ深入浅出]第二季更新完毕课程共计16节课

    [南京米联]ZYNQ第二季更新完毕课程共计16节课 [第二季ZYNQ]                                                                  ...

  7. SpringBoot常用Starter介绍和整合模板引擎Freemaker、thymeleaf 4节课

    1.SpringBoot Starter讲解 简介:介绍什么是SpringBoot Starter和主要作用 1.官网地址:https://docs.spring.io/spring-boot/doc ...

  8. 如何选择JAVA培训机构,兼议什么样的人适合培训机构

    首先,利益相关,本人就是培训机构创办者兼讲师,但这不妨碍我对此发表看法. 我们先来看什么样的人适合培训机构?要回答这个问题,需要先换个角度.这个角度就是,你学习一门语言的动机是什么?99%的人的回答是 ...

  9. centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节课

    centos  lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress  安装phpmyadmin  定时备份mysql两种方法  第二十五节 ...

随机推荐

  1. centos 火狐浏览器安装adobe flash player插件

    来个CentOS 6.3 为Firefox安装Flash插件教程 下载install_flash_player_11_linux.i386.tar.gz打包文件到本地   终端进入install_fl ...

  2. android飞机游戏敌机移动路径

    基础android的飞机类游戏,与前人一样,由surfaceView绘制游戏画面,另起线程控制绘制时间间隔达到动态效果.这里附上最近自己写的敌机自动飞行路径代码.请大家给点意见. 在敌机管理模块,加入 ...

  3. 60款开源云应用【Part 2】(60 Open Source Apps You Can Use in the Cloud)

    60款开源云应用[Part 2](60 Open Source Apps You Can Use in the Cloud) 本篇翻译自http://www.datamation.com/open-s ...

  4. File transfer in android with asmack and Openfire

    http://harryjoy.com/2012/08/18/file-transfer-in-android-with-asmack-and-openfire/ http://www.javacod ...

  5. [Practical Git] Show who changed a line last with git blame

    When working on a file, we often want to know who made certain changes last; we can use git blame to ...

  6. iOS开发——高级技术&密码锁功能的实现

    密码锁功能的实现 一个ios手势密码功能实现 ipad/iphone 都可以用 没有使用图片,里面可以通过view自己添加 keychain做的数据持久化,利用苹果官方KeychainItemWrap ...

  7. Starling性能优化技巧十五则

    Starling的性能优化要点 一.尽可能减少状态变更 如您所知,Starling使用Stage3D来渲染所有的可见对象.这就意味着所有的绘制都是GPU完成的. 现在,Starling可以一个接一个的 ...

  8. android118 上拉下拉刷新列表listView实现

    MainActivity.java package com.heima52.pullrefresh; import java.util.ArrayList; import com.heima52.pu ...

  9. DebuggingWithGdb

    https://wiki.python.org/moin/DebuggingWithGdb http://blog.nsfocus.net/python-program-troubleshooting ...

  10. java_利用session校验图片认证码

    RegisterServlet:检验server,client验证码是否一致 ImageServlet: 产生验证码 <!DOCTYPE html> <html> <he ...