关于对象的行为、数组、继承和类的高级概念

1.对象的行为:

                  (1)方法调用栈:所有的方法调用都维护在一个称为调用栈的结构中。

第一个被调用的方法就是main(),该方法是Jvm调用的,因此main()方法总是在调用栈的底部。

       (2)调用方法:一个方法被调用时该方法就放在调用栈的顶部,知道方法执行完成。

三种情况:①方法返回一个值:一个基本数据类型或一个引用数据类型被传回给方法的调用者;

②方法不返回一个值:返回值被声明为void;

              ③方法抛出一个异常给方法的调用者。

Java中的方法只能出现在类中,没有声明为静态的方法只能在类的实例中调用。

      (3)方法签名:方法签名不包含方法体内的任何语句,签名只是方法的声明部分。

①访问修饰符:public, private, protected, 默认访问修饰符;

             ②可选修饰符:static, final, abstract, native, synchronized(访问修饰符与可选修饰符的次序是随意的);

             ③返回值:方法签名必须包括返回值类型;

             ④方法名:方法名必须出现在返回值之后,可以是任何有效的Java标识符;

             ⑤形式参数列表:方法后面必须是一对括号括起来的形式参数列表。

(4)形参和实参: 形参:用于声明传递到方法中的数据的类型;

实参:传递给形参的数据。

Java中传递方式只有值传递。

      (5)按值调用:

            概念:在编程中,在方法调用之前复制数据的过程称为按值调用。

工作原理:不管传递给方法的实际参数是什么类型,相关的形式参数都会的到该数据的一份拷贝,这就是按值调用的工作原理。

             缺陷:按值调用导致的唯一限制是方法不能改变引用的指向。

补充:1.断点调试:①定位(设置断点);

                  ②启动调试;

                  ③单步执行、观察;

                  ④修改。

2.①用static修饰的属性或方法叫静态成员,为类的所有对象共享;

             ②在静态方法中,只能直接调用静态成员,不能直接调用非静态成员;

             ③在成员方法中,可以直接调用静态成员或非静态成员;

             ④采用类名打点方式调用静态成员。

            3.局部变量在调用栈中分配内存当方法执行完成后,这些变量就被抛弃。

            4.如果我们想传给方法的数据是一个很大的对象,那么,不是对象被传入,而是对象的引用被传入。

       (6)方法重载:当一个类有两个到多个同名但是有不同的参数列表的方法时。

       (7)构造器:在创建对象时被调用,它是类中的一个特殊的方法。

①用途:初始化对象中的成员变量。

           ②:⒈默认情况下类当中有一个无参构造器,编译时会自动生成;

             ⒉当写出带参构造器则不会产生无参构造器若要使用无参构造器则应写出;

             ⒊在构造器中调用同一类中的构造器,用this(),此语句必须是该构造器的第一天可执行语句。

           ③构造器与方法的区别在于其两个属性:⒈构造器名称必须与类名相同;

                           数组呗实例化时。

⑤在Java中构造器内使用的this关键字与代表每个对象本身的this引用是不同的。

2. 数组:               

      (1)数组是存储在一个连续的内存块中的元素的集合,数组是引用类型。

①声明数组:int sum = new int[5];    (分配空间后数组的每个元素都会有默认值)

②对象数组中每个元素都是对象;

对象数组:单个元素类型[]  数组名 = new  类型[长度]

③数组中的元素通过索引值来访问。

(2)数组长度:用length属性来代表数组的大小,可以极大的减小数组访问越界的可能性。

(3) 数组初始化:用一条语句声明一个数组引用,实例化一个数组并且填充数组元素。它对创建一个包含已知数据的小数组是很有用的。

①int[]  num = new  int[]{   ,   ,   }

         ②int[]  num = {  ,   ,   }

         ③int[]  num;

num = new  int[]{   ,   ,   }

      (4)数组复制:可以编写for循环将一个数组的内容复制给另一个,,也可以用System类中的静态方法arraycopy()  .

arraycopy()方法的签名如下:

public static void arraycopy( Object source,  int  sourcePos, Object destination,  int destinationPos, int length  )

              sourcePos————要复制的源数组

destinationPos————要复制给那个目标数组

length  ————参数代表要复制的元素的数目

             数组可以使用new关键字或者使用数组初始化器初始化。

javaDoc工具可以产生包含类信息的HTML页面, 该页面中包含在源代码中出现的任何javaDoc注释。

补充:

栈:一种数据结构,存取数据时FILO(first int last out).       保存局部变量的值:基本类型的值和引用类型的引用,即地址。

          堆:用来存放动态产生的数据,如new出来的对象。

引用类型用 “==” 比较时,比较的事引用。

String:①concat();

eg:String a = "abc";

                  打印a  得到 abc.

                  打印a.concat( "123" )  得到abc123.

②charAt();

eg:String a = "abc";

System.ou.println( a.concat(2) );  打印出 c

③compareTo();

              eg:String a = "are";

String b = "more";

a.compareTo(b): 在字典中即判断字符串a, b.  若a.compareTo(b)<0 , 则 a 在 b 之前。

④indexOf(int a);查找字符,开始索引

eg:agvajdgvjvbmsv. 查找a在该字符串中第一次出现的索引,若未出现该字符, 返回-1.

⑤subString(start, end);从start开始(包括),直到end结束(不包括)。

3.继承(初涉):通过扩展一个已有的类,并继承该类的属性和行为,类创建一个新的类  (可以继承public ,  protected 的成员 ),关键字 extends.

(1)已有的类称为父类,而新的类称为子类。父类派生子类,子类继承父类。

eg:    public class Hourly extends Employee{}

     

4.类的高级概念:

①访问修饰符:

  本类 同一包中不同类 不同包 子类
public √  √ 
protected √  √    √ 
default √  √     
private √       

②封装:是使类中的成员变量都是private,并提供public方法访问这些成员变量的技术。封装也被称为数据隐藏,其作用是保障数据安全性。

允许获取成员变量的get方法称为访问器方法,允许修改成员变量的方法称为修改器方法。

关于getter/setter:

 1 public class SalesPerson{
 2        private String name;
 3        public SalesPerson(String name){
 4                 this.name = name;
 5        }
 6        public void setName(String name){
 7                 name = n;
 8        }
 9         public void getName(){
10                return name ;
11        }
12
13 }
时间: 2024-10-29 19:06:51

关于对象的行为、数组、继承和类的高级概念的相关文章

继承、类的高级概念、多态和抽象、接口

private 只能在自己的类中访问得到. public 表 示共有的,在任何类中调到. protected 在所有类中 defult 在自己以及类中调用到. 本类 同一包中不同类 不同包 子类 piviate 是 是 是 是 public 是 是 是 protected 是 是 default 是 extends继承类 super . 类名(): 操类 子类中调用副类方法 public class salary extends Employee{ } 使用“is a ”判断继承是否正确 所有类

Java中继承,类的高级概念的知识点

1. 继承含义 在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类,这种方式称为继承(inheritance). 2. 继承的优点 A.代码的可重用性 B.子类可以扩展父类的属性和方法 C.父类的属性和方法可用于子类 D.设计应用程序变得更加简单 3. 如何判断类具有继承关系? 类与类的关系:  a. has—a(组合关系) b. is—a(继承关系) 4. Java中继承的实现(关键字:extends)   关键字extends出现在类声明时的类名后,exte

java学习笔记(七)类的高级概念

类的高级概念包括:访问修饰符.封装.静态成员.初始化块以及内部类等混合内容. 访问修饰符: (1).公开访问级别:使用public关键字修饰.用public关键字修饰的成员对外公开,即公开成员可以被任何其它对象访问. (2).受保护访问级别:使用protected关键字修饰.受保护的成员可以被同一包中的类所访问,还可以被类的子类所访问,不管子类是在哪个包中. (3).默认访问级别:没有访问修饰符.默认访问级别的成员可以被同一包中的其它类所访问. (4).私有访问级别:使用private关键字修饰

JAVA——类的高级概念

类的每一个成员(包括变量.方法和构造器)都有一个访问修饰符,用于判断谁可以访问成员.Java为类的成员提供了四种访问级别,按照访问权限由大到小排列如下: ■公开访问级别:使用public关键字修饰.用public关键字修饰的成员对外公开,即公开成员可以被任何其他对象访问. ■受保护访问级别:使用protected关键字修饰.受保护的成员可以被同一包中的类所访问,还可以被类的子类所访问,不管子类是在那个包中. ■默认访问级别:没有访问修饰符.默认访问级别的成员可以被同一包中的其它类所访问. ■私有

类的高级概念

这章中我们了解到了访问修饰符的概念,对public.default.protected.private有了清晰的认识,希望在以后的操作中学会灵活运用. private为我们提供了封装的概念,并提供public方法供我们访问和修改方法和属性,这样不但可以限制某些属性的修改访问,还可以对内层的属性方法进行一定的拆分组装从而达到一种加密的效果.封装的概念很广,将同一个类中要用到方法和属性写在一起,也叫一种封装. 被static修饰过的方法和成员变量我们称之为静态成员变量,它的特点就是存在于数据区,且所

java面向对象编程——第八章 类的高级概念

8.1访问修饰符: public:该类或非该类均可访问: private: 只有该类可以访问: protected:该类及其子类的成员可以访问,同一个包中的类也可以访问: 默认:相同数据包中的类可以访问. 访问修饰符的作用是限制属性和方法被使用和调用的范围. 8.2封装 按照信息隐藏的原则将信息组织在一起.封装有两个特点:信息的集合:信息的隐藏. 8.3访问器get()和修改器set() 私有属性+get/set()和公有属性的区别: 私有属性+get/set(),可以通过去掉get或者set方

JavaOO 类的高级概念

访问修饰符: 类的每一个成员(包括成员变量.方法和构造器)都有一个访问修饰符,用来判断谁可以访问该成员 static 静态: 1.特性: 1)与对象无关,与类有关 2)在加载期有特殊操作 2.用static修饰的属性: 1)全类(不管多少对象)共享一个值  ----可以用类名. 进行访问 常量属性无脑设计为static 变量属性极少设计为static 2)在加载期就会被产生 3.用static修饰的方法:----静态方法-----类方法 该方法与对象无关,只与类有关-----static的方法不

第8章 类的高级概念

1.局部变量不能加访问修饰符,成员变量可以. 2.static 的类属性,不属于对象所有,所有对象共享该属性.尽量使用类名调用类属性,而不是对象名. 3.类本身也有访问修饰符,但是类的访问修饰符只有共有的和默认(无访问修饰符)的两种.默认访问的类只能被同一包中的其他类使用. 4.封装也被称为数据隐藏. 5.类的成员变量可以成为只读或者只写的. 6.类的静态成员被称为类成员,因为静态成员与类相关,而不是类的某个实例. 7.静态成员变量和方法不能使用引用来访问,因为引用是指类的实例. 8.静态方法是

【JavaScript】类继承(对象冒充)和原型继承__深入理解原型和原型链

JavaScript里的继承方式在很多书上分了很多类型和实现方式,大体上就是两种:类继承(对象冒充)和原型继承. 类继承(对象冒充):在函数内部定义自身的属性的方法,子类继承时,用call或apply实现对象冒充,把类型定义的东西都复制过来,这样的继承子类与父类并没有多少关联,不互相影响,有利于保护自身的一些私有属性. 原型继承:每个函数都有自己的原型(prototype)属性,这个属性是在生成实例对象时自动创建的.它本身又是一个对象,拥有能够在实例间共享的属性和方法.而实例本身的属性和方法,则