Java基础知识整理(一) 面向对象程序设计——封装整理

1 类中的属性又叫成员变量(member variable),属性用英文(property)或者attribute

2 对象(Object) 又叫做实例(Instance)。生成一个对象的过程叫做对象的实例化

3 面向对象编程中命名的约定:

 (a) 类:首字母大写,如果一个类名由多个单词构成,那么每个单词的首字母都要大写,中间不使用仍何连接符,比如Person类 ,MemberTest类

    (b)方法:首字母小写,如果一个方法由多个单词构成,那么第一个单词的所有字母全都小写,从第二个单词开始,每一个单词的首字母大写,比如:add   , ageOfPerson 

    (c) 属性:命名约定与方法完全相同,比如:age ageOfPerson

4 属性需要定义在类中,又叫做成员变量,而定义方法中的变量叫做局部变量

5 如何定义属性:

public class Person

{

    修饰符 类型  属性名称 

}

使用属性的方法:与方法一样;使用.运算符 首先生成类的实例,然后使实例 . 方法方式使用属性 

Person person=new Person();

person.age=...;

public class Person

{

    int age=20; //注意一下 :类的属性所写的位置 

    public static void main(String[] args)

    {

        Person person=new Person();

        System.out.println(person.age);

    }

}

 

6 成员变量和局部变量的区别:

局部变量使用前要声明并且要赋初值:

成员变量使用前要声明但是可以不赋初值 ;

成员变量和局部变量的区别和联系:

(a)无论是成员变量还是局部变量在使用前都要声明  :

(b )对于局部变量来说:使用前必须要初始化 ,对于成员变量来说,使用前可以不初始化,如果没有初始化成员变量并开始使用,那么每个类型的成员变量都有一个默认的初始值 

i byte short int long 类型的初始值为0 

ii float double   类型的初始值是0.0

iii char类型的初始值是‘\u0000‘          

iV boolean       类型的初始值是false

7 引用类型(reference type)引用类型是用在对象上的  

Person person=new Person(); person 是一个引用类型 而不是对象    

【注明】一个对象可以被多个引用所指向

但是同一时刻,每个引用只能指向唯一的一个对象,如果一个对象被多个引用所指向,那么无论哪个引用对对象的属性进行了修改,都会反映到其他的引用当中去

举例:people.java 

引用变量分配是在栈上的  内存里生成是对象  Java里面无法直接操作对象 都是通过引用来操作的 

public class People

{

    int age=20;

   public void change(People people)

    {

        people.age=30;

    }

    public static void main(String[] args)

    {

        People people =new People();

        int age1=people.age;

        System.out.println(age1);

        people.change(people);

         int age2=people.age

        System.out.println(age2);

    }

}

首先在栈内存上分配一个people的一个引用类型的变量 这个变量会指向 堆内存上分配的一个对象 age=20;

然后再栈内存上又会分配一个应用类型的变量 同时指向堆内存上的这个对象 将他的值改成了30 所以答案是age1=20 age2=30 方法执行完了之后 ,关于这些方法的所有代码都会被垃圾回收器回收,所以这个方法里存在的形参会消失掉 

在这个执行程序的时候 ,引用可以多个,但是只有一个对象 

思考 若是public void change(People people )

{

    people=new People();

    people.age=30;

}

执行的结果是两个都是20

(1)    如果一个类包含多个属性和方法,那么该类的 每一个对象都有自己的属性,但无论一个类有多少个对象,这些对象共用同一个方法 。

(2)Java中是没有传引用这种类型的 ,在C#或者 C++中才有可能传递的是引用这种说法。

Java中关于方法参数传递:对于Java中的方法参数的传递,无论传递的是原生数据类型,还是引用数据类型,一律传值(pass by value)若是传递的参数是一个引用类型,只不过是传递的是对象的地址 

 

(3)什么类型的引用就可以指向什么类型的对象,比如 people类型的引用就可以指向People类型的对象,但是不能指向别的对象 比如 People类型指向 bird

People people=new People();//正确

10 构造方法:构造方法(Constructor)构造方法用于完成对象属性的初始化工作,构造方法的特点:

       (1)构造方法的名字必须与类名完全一致 包括大小写 

       (2)构造方法没有返回值,连void也不会出现 

       (3)如果在定义一个类的时候,没有为类声明构造方法,那么java编译器会自动为类添加一个没有参数且方法为空的构造方法(次方法叫做默认的构造方法)

        (4)如果在定义一个类的时候,为类声明了构造方法,那么Java编译器就不会再为类添加构造方法了

        (5)不能显式调用类的构造方法,构造方法通常是通过关键字new类隐式子调用 

People p =new People();

在执行了这句话之后 ,内存中会出现的情况:

(a)为对象开辟空间

(b)调用类的构造方法

(c)将类的对象的地址返回 

11默认的构造方法:构造方法没有参数且方法体会空 

12 使用new来生成对象的时候,后面的小括号()表示构造方法的参数列表,如果构造方法不接受参数,那么小括号中的内容为空 ,若构造方法接收参数,那小括号中的实际参数就需要与构造方法定义中的形式参数保持一致(参数数量一致,参数类型一致,按照顺序逐一赋值)

public class PersonTest

{

public static void main(String[] args)

{

Person person = new Person();

System.out.println(person.age);

}

}

class Person

{

int age;

public Person()

{

}

}//打印出0  年龄的默认值是0

=======================思考如下程序的执行结果+++++++++++++++++

public class ParamTest
{

public static void main(String[] args)

{

Person person=new Person();

person.change(person);

int age=person.age;

System.out,println(age);

int i=10;

person.change2(i);

System.out.println(i);

}

}

class Person

{

int age = 20;

public void change(Person person)

{

person=new Person();

person.age=30;

}

public void change2(int age)

{

age=40;

}

}

类的命名采用驼峰标识:AddThreeInt

方法的命名第一个字母要小写 addThreeInt(int a,int b)

属性和方法是一样的 ,中间不要加下划线 

时间: 2024-10-12 23:25:03

Java基础知识整理(一) 面向对象程序设计——封装整理的相关文章

java基础知识回顾之面向对象

一 . 抽象类 什么是抽象类?很简单,就是用abstract关键字修饰,并允许包含未实现方法的类. 什么时候定义抽象类?在有些情况下,可能有些方法无法确定要怎么实现,这时就可以定义抽象类,无法实现的方法定义成抽象方法. 抽象类的特性: 1. 不能实例化,即不能创建对象,只能作为父类被继承. 2. 子类继承一个抽象类后,必须实现父类的抽象方法. 3. 抽象类中可以有抽象方法,也可以不包含抽象方法,但如果包含抽象方法,就必须定义成抽象类. public abstract class Shaoe{ p

Java 基础知识(二)之面向对象技术

1.    面向对象与面向过程的区别 面向对象把数据及对数据的操作方法放在一起,作为一个互相依存的整体,即对象.对同类对象抽象出其共性,即类,类中的大多数数据,只能被本类的方法进行处理.类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信.程序流程由用户在使用中决定. 面向过程是一种以事件为中心的开发方法,就是自顶向下顺序执行,逐步求精,其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构,各模块之间的关系也比较简单,在功能上相对独立,每一模块内部一般是由顺序.选择

Java基础知识:面向对象&类图

类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称.在系统中,每个类都具有一定的职责,职责指的是类要完成什么样的功能,要承担什么样的义务.一个类可以有多种职责,设计得好的类一般只有一种职责.在定义类的时候,将类的职责分解成为类的属性和操作(即方法).类的属性即类的数据职责,类的操作即类的行为职责.设计类是面向对象设计中最重要的组成部分,也是最复杂和最耗时的部分. 1.面向对象特性 1)抽象 2)继承 3)封装 4)多态 2.类图: 在软件系统

JAVA基础知识整理

一.首先先明白get与post的基本定义和区别: 这是两种在客户端和服务器端进行请求-响应的方法. 1get:从指定的资源请求数据. 2post:向指定的资源提交要处理的数据. get基本上用于从服务器取回数据,注意:get方法可能返回缓存数据. post可以从服务器上获取数据,不过,post方法不会缓存数据,并且常用语连同请求一起发送数据. 二. Jquery $.get()方法. $.get()方法通过Http Get发起请求,从服务器上请求数据. 语法:&.get(URL,callback

第1天:了解Java基础知识

Java的优势 1. 简单 不像C或者C++语言,Java中省去了对指针的操作.但是,Java中并没有省去指针,代替指针的是一种新的变量--引用,引用也是保存一个对象的内存地址. 2.方便 Java虚拟机自带垃圾回收器,能够自动回收内存资源.而C和C++语言,需要开发人员手动进行内存资源回收. 3.安全 不支持指针操作 4.平台无关性 Java语言是跨平台的,一次编译,到处运行. 而且,不同平台,C语言中数据类型所占的位数是不同的,而Java语言中,数据类型所占的位数是固定的. 5.面向对象 J

Java基础知识的三十个经典问答

Java基础知识的三十个经典问答 1.面向对象的特点 抽象: 抽象是或略一个主题中与当前目标的无关的因素,一边充分考虑有关的内容.抽象并不能解决目标中所有的问题,只能选择其中的一部分,忽略其他的部分.抽象包含两个方面:一是过程抽象:一是数据抽象. 继承 继承是一种联接类的层次模型,允许和鼓励类的重用,提供了一种明确的共性的方法.对象的一个新类可以从现有的类中派生,这叫做类的继承.心累继承了原始类 的特性,新类称为原始类的派生类或者是子类,原始类称为新类的基类或者父类.子类可以从父类那里继承父类的

java基础知识回顾之javaIO类--File类

File类是对文件系统中文件以及目录(文件夹)进行封装的对象,可以通过面向对象的思想来操作文件和目录(文件夹).File类保存文件或目录的各种元素的信息,包括文件名,文件长度,最后修改日期,是否可读,获取当前文件的路径名,判断指定文件是否存在,获得当前文件的列表,创建.删除文件目录等方法. /**     * 构造方法:File f = new File("file.txt");//file.txt 相对路径     *       File f1 = new File("c

Java基础知识回顾之七 ----- 总结篇

前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数据类型 基本数据类型主要有: byte.short.int.long.float.double.char.boolean 它们可以分为三类: 数值类型:byte.short.int.long.float.double 字符类型:char 布尔型:boolean 其中byte是8位,short是16位

沉淀,再出发:Java基础知识汇总

沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的语法,对象的定义,类.接口.继承.静态.动态.重载.覆盖这些基本的概念和使用方法,到稍微高级一点的多线程,文件读写,网络编程,GUI使用,再到之后的反射机制.序列化.与数据库的结合等高级一点的用法,最后将设计模式应用其中,产生了一个个新的概念,比如Spring.Spring MVC.Hibernat