大实训

一.一次编译,到处运行的原理

第一步:Windows下的c语言编程过程
(c源程序(扩展名为.c),Windows可执行文件扩展名为.exe执行windows操作系统)
第二部Java语言编程过程:就是Java源程序既:.class执行Java虚拟机(Windows下的java字节码解释程序,Linux下的java字节码解释程序,能直接解释java字节码的CPU)执行windows操作系统跟Linux系统

Java具有三方面的 内涵

*是一种编程语言
*是一套开发工具
*是一个运行环境

二.面向对象的概念

面向过程
在一个结构体中定义窗口的大小,位置,颜色,北京等属性,对窗口操作的函数与窗口本身的 定义没有任何关系,如HideWindow,MoveWindows,MinimizeWindow,这些函数都需要接受一个代表要被操作的窗口参数,是一种谓语与宾语的 关系。
面向对象
定义窗口时,除了要指定在面向过程中规定的那些属性,如大小,位置,颜色,北京等外,还要指定该窗口可能具有的动作,如隐藏,某个窗口要移动的语法格式来使用的 ,这是一种主语与谓语的关系。
面向对象的 三大特征
封装,继承,多态
类和对象是面向对象的核心概念
类是对某类事物的描述,是抽象的,概念上的定义,对象是实际存在的该类事务的每个个体,因而也称为实例。

三.类的定义

'''class Person
{
int age;
void shout()
{
System.out.println("oh ,my god! I am"+age);
}
}
'''
*age是类的属性,也叫类成员变量
*shout是方法也叫类的成员函数
*shout方法可以直接访问同一个类中的age变量

五.实现类的 封装性

如果外面的程序可以随意修改一个类的成员变量,会造成不可预料的程序错误,就像一个人的身高,不能被外部随意修改,只能通过各种捏取营养的方法去修改这个属性。
在定义一个类的成员(包括变量和方法)使用private关键字说明这个成员的访问权限,
为了实现良好的封装性,我们通常将类的成员变量声明为private,在通过public的方法对这个变量进行访问。
一个类通常就是一个小的模块,我们应该让模块仅仅公开
必须要让外界知道的内容,而隐藏其他一切内容。

四.类的封装所带来的优点

隐藏类的实现细节;
让使用者只能通过事先定制好的方法来访问数据,可以方便的加入控制逻辑,限制对属性的不合理操作;
便于修改,增强代码的可维护性

五.构造函数的定义与作用

构造方法的特征:
*它具有类相同的名称
*它不含返回值
*它不能在方法中用return语句返回一个值
注意:在构造方法里不含返回值的概念是不同于“void”的,在定义构造方法的时加了“void”,结果这个方法就不在被自动调用了。

六.构造方法的重载

和一般的方法重载一样,重载的构造方法具有不同个数或不同类行的参数,编译器就可以根据这一点判断出用new关键字产生对象时,该调用哪个构造方法了,产生对象的格式时:new类名
重载构造方法可以完成不同初始化的操作

六static静态方法

*在静态方法里只能直接调用同类中 的其他静态成员(包括变量和方法),而不能直接访问类中 的非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象才可使用,而静态方法在使用钱不用创建任何对象
*静态方法不能以任何方式引用this和super关键字。因为静态方法在使用前不用创建任何实例对象根本就没有产生
*main()方法是静态的,因此在JVM在执行main方法时不创建main方法所在的实例对象。

内部类

在类中直接定义的内部类
嵌套类可以直接访问嵌套它类的成员,包括private成员,但是,嵌套类的成员却不能被嵌套它的类直接访问
在内部类对象保存了一个对外部类的对象的引用,当内部类的成员方法访问某一变量时,如果在该方法和内部类中没有定义过这个变量,内部类中对this的引用会被传递给那个外部类对象的引用。
public class Outer{
private int size;
public class inner
{
private int size;
pubic void doStuff(int size){
size++;//引用的是doStuff函数的形参
this.size++;//引用的是inner类中的成员变量
Outer.this size++;//引用的Outer类中的成员变量
}
}
}
内部类如何被外部类引用
'''
class Outer
{
private int size =10;
public class inner
{
public void do Stuff()
{
public void printIn(++size)
}
}
}
public class TestInner{
public static void main(String [] args){
Outer outer=new Outer();
Outer Inner inner =outer.new Inner();
inner.doStuff();
}
'''

7.异常

异常定义了程序中遇到的非致命的错误,而不是编译
时的语法错误,如果程序要打开一个不存在文件,网络时的语法错误,如果程序要打开一个不存的文件,网络连接中断,操作书越界,装载一个不存在的类等。
try,catch语句
throws关键字
自定义异常与Throw关键字

编码

字符编码
字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。

1byte=8bit;
1k=1024byte;
1m=1024k;
1G=1024m;
Unicode和UTF-8的区别
·Unicode:是字符集
·UTF-8:是编码规则
字符集:为每一个【字符】分配一个 唯一的ID
编码规则:将【码位】转换为字符序列规则

UTF-8用1-4个字节来存储(可变)
字节数n - 1 那么第一位是0
字节数n > 1第一个字节的前N为1第n+1位为0,后面的每个自己前两位用10表
unicode it's知乎日报18byte 18 * 8 =144bit;
Utf-8=17byte=17*8=136;

'''
Person person = new Person();

    ArrayList<Person> list1 = new ArrayList<>();
    list1.add(new Person());
    list1.add(new Person());
    list1.add(new Person());

    ArrayList<Person> list2 = new ArrayList<>();

    for (int i = 0; i <list2.size() ; i++) {
        person.name="我是:"+i;
    }
    list2.remove(0);
    System.out.println("List1的size"+list1.size());
    System.out.println("list2的size"+list2.size());

'''

引用类行:类,接口,数组
基本类行:byte,short,int long,float,double,char,boolean;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。