java培训(5-8节课)
面向对象:
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节课)的更多相关文章
- java培训(1-4节课)
课程安排:JavaEE方向(控制台程序,GUI程序,Web程序,手机程序)(dos命令是控制台程序:QQ是GUI程序,放在计算机上:QQ空间是Web程序,放在腾讯公司) 讲课的13本教材:C语言,Ja ...
- linuxprobe培训第1节课笔记2019年7月5日
报了老刘的RHCE培训,这是老刘上课笔记简略版. 老刘在课上介绍了开源共享精神和大胡子(Richard M. Stallman—GNU创始人).linux发展史(Linus Benedict Torv ...
- linuxprobe培训第2节课笔记2019年7月6日
使用VM虚拟机配置RHEL实验环境. 鉴于在笔记本上装过centos7,这章内容难度对我来说不是很大. 重置root管理员密码(RHCSA考题,第一题,做不出来无法进行下一步考试) e linux16 ...
- linuxprobe培训第3节课笔记2019年7月7日
linux常用命令: echo:在终端输出字符串或变量提取后的值 date:显示及设置系统的时间或日期 reboot:重启 poweroff:关机 wget:下载 ps:查看系统中的进程状态(常用参数 ...
- Java第一节课动手动脑
在第一节课的动手动脑中,主要解决四则运算问题. 首先第一个是出30道四则运算题目,在100以内.这个问题需要控制随机数生成的范围和结果的范围在100以内就可以. 第一次改进是3点:一为避免重复,二为定 ...
- [转][南京米联ZYNQ深入浅出]第二季更新完毕课程共计16节课
[南京米联]ZYNQ第二季更新完毕课程共计16节课 [第二季ZYNQ] ...
- SpringBoot常用Starter介绍和整合模板引擎Freemaker、thymeleaf 4节课
1.SpringBoot Starter讲解 简介:介绍什么是SpringBoot Starter和主要作用 1.官网地址:https://docs.spring.io/spring-boot/doc ...
- 如何选择JAVA培训机构,兼议什么样的人适合培训机构
首先,利益相关,本人就是培训机构创办者兼讲师,但这不妨碍我对此发表看法. 我们先来看什么样的人适合培训机构?要回答这个问题,需要先换个角度.这个角度就是,你学习一门语言的动机是什么?99%的人的回答是 ...
- centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节课
centos lamp/lnmp阶段复习 以后搬迁discuz论坛不需要重新安装,只需修改配置文件即可 安装wordpress 安装phpmyadmin 定时备份mysql两种方法 第二十五节 ...
随机推荐
- centos 火狐浏览器安装adobe flash player插件
来个CentOS 6.3 为Firefox安装Flash插件教程 下载install_flash_player_11_linux.i386.tar.gz打包文件到本地 终端进入install_fl ...
- android飞机游戏敌机移动路径
基础android的飞机类游戏,与前人一样,由surfaceView绘制游戏画面,另起线程控制绘制时间间隔达到动态效果.这里附上最近自己写的敌机自动飞行路径代码.请大家给点意见. 在敌机管理模块,加入 ...
- 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 ...
- 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 ...
- [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 ...
- iOS开发——高级技术&密码锁功能的实现
密码锁功能的实现 一个ios手势密码功能实现 ipad/iphone 都可以用 没有使用图片,里面可以通过view自己添加 keychain做的数据持久化,利用苹果官方KeychainItemWrap ...
- Starling性能优化技巧十五则
Starling的性能优化要点 一.尽可能减少状态变更 如您所知,Starling使用Stage3D来渲染所有的可见对象.这就意味着所有的绘制都是GPU完成的. 现在,Starling可以一个接一个的 ...
- android118 上拉下拉刷新列表listView实现
MainActivity.java package com.heima52.pullrefresh; import java.util.ArrayList; import com.heima52.pu ...
- DebuggingWithGdb
https://wiki.python.org/moin/DebuggingWithGdb http://blog.nsfocus.net/python-program-troubleshooting ...
- java_利用session校验图片认证码
RegisterServlet:检验server,client验证码是否一致 ImageServlet: 产生验证码 <!DOCTYPE html> <html> <he ...