类和对象
来源:互联网 发布:网站源码上传教程 编辑:程序博客网 时间:2024/06/03 05:22
补充:
简单数据类型
简单数据类型的初始值:byte (0) short(0) int (0) long(0l) float(0.0f) double(0.0) boolean(false)char(”)
引用数据类型
引用数据类型的初始值为null
引用数据类型方法传递的是复制的地址,简单数据类型传递的是复制的数据break
break有两个地方用 for +switch(for中是跳出整个循环,switch中跳出整个switch)
类和对象
类的基本形式
public class 类名(首字母大写,有意义){
}下面用一个例子来具体说明一个类,和一个类要注意的地方。
package com.test;public class Person { int age;//全局变量,即成员变量,也即属性 String sex; String name; public Person(int age1,String sex1,String name1){ age=age1;//带参数的构造体 sex=sex1; name=name1; } public Person(){ //不带参数的构造体 } public void sleep(){//带参数的方法 System.out.println("is sleeping"); } public String eat(String food){//不带参数的方法 System.out.println("is eating "+food); return food; }}
类里边所包含的内容
类里边只包含构造体 属性 方法
- java 默认一个无参的构造体,创建任何一种有参构造体都会将默认无参构造体,若要使用无参构造体,需再写一个无参构造体。
- java类中的属性又叫全局变量或者成员变量。属性尽量为名词,首字母要小写。
- 方法命名最好为动宾短语,方法要有返回值类型,void不需要返回值类型。在方法中声明的变量为非全局变量即局部变量,局部变量必须赋初始值。
需要注意的问题
- return 方法不能返回多个值,如需返回多个值,可声明数组
- 方法里不能再有方法,只能调用其他方法。即多个方法不能互相嵌套定义。
- 类外不要写东西
- 可变参数必须是最后一个参数(String…在参数最后)
封装
将属性封装到内部,隐藏起来,只能通过规定的方法来访问,隐藏即把某些属性设置为private,不允许直接访问,可通过某些方法访问,同样可以封装一些方法。
继承
java是单继承,每个类只有一个父类。但是一个父类可以有多个子类。
this
this关键字:一般在本类中调用,调用该方法的对象。this还可以调用构造器。this与super只能存在一个,必须写在第一行,调用本类的另一个构造器。
this调用此方法的该类的对象。
super
继承中子类默认调用父类构造器。并且必须首先调用。
super.run();调用父类的方法。
super(),调用无参构造器,可以省略。super(参数)有参构造器的继承不能被省略并且必须放子类构造器的第一行。
super.参数 调用父类的属性 super.method调用父类的方法。
调用的顺序
在主函数中调用某个子类的顺序:父类属性-》父类构造器-》子类属性-》子类构造器
重写和重载
- 父类和子类同名的方法,子类对父类方法重写,也叫方法的覆盖,重写的方法名,参数,返回值类型必须与父类相同。
* 私有方法不能继承因而也无法重写。
* 构造方法不能被继承因此不能被重写, - 方法的重载:在本类中,方法名相同,参数不一样
四种访问修饰符(修饰属性和方法)
四种访问修饰符的访问权限:(由小到大)
private-》default-》protected-》public
private只能在本类中使用;
default可以在本类和同包中使用;
protected可以在本类,同包,还可以在不同包的子类中使用;
public可以被任何类使用。
封装类
为了实现java的统一,实现面向对象,将java中的8个简单数据类型封装成引用数据类型。这里用int举例说明。
int i=Integer(10)表示自动拆包
Integer j=10 表示自动装包
package com.baidu.jicheng;public class Bao { public static void main(String[] args) { Integer i1=new Integer(5); Integer i2=new Integer(5); int i3=5; int i4=5; Integer i5=5;//自动封装成包 int i6=new Integer(5);//自动拆包 System.out.println("i1==i2为"+(i1==i2));//false System.out.println("i3==i5为"+(i3==i5));//i5自动拆包 System.out.println("i1==i6为"+(i1==i6));//i1自动拆包 System.out.println("i5==i6为"+(i5==i6));//i5自动拆包 System.out.println("i3==i4为"+(i3==i4));// System.out.println("(i1.equals(i2))为"+(i1.equals(i2)));//按序比较内容,结果为true }}
继承中this的一个例子
这里给出一个父类Student类,一个子类XiaoMing类继承于父类,然后通过Test类来调用,然后通过运行结果查看this所代表的到底是什么。
父类
package com.jicheng.test;public class Student { private int number; public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } String name; String sex; public Student(){ this.run(); System.out.println("学生类的无参构造器"); } public Student(int n){ this.number = n; //System.out.println(number); } public void study(String course){ System.out.println("is studying : "+course); System.out.println("学生类的方法"); } public void run() { System.out.println("父类的run方法"); }}
子类
package com.jicheng.test;public class XiaoMing extends Student{ int number; String name; String sex; String address; public XiaoMing(String grade){ //super(); super.setNumber(4); System.out.println("suo chu nianji: "+grade); System.out.println("小明类的有参构造体"); } public XiaoMing(){ this(""); } public void run(){ super.run(); System.out.println("小明类的run方法"); }}
Test类
package com.jicheng.test;public class Test { public static void main(String[] args) { XiaoMing xiao=new XiaoMing("七"); System.out.println(xiao.getNumber()); Student stu = new Student(); System.out.println(stu.getNumber()); }}
运行结果:
如果test类中创建对象的时候使用无参构造器,就可以使用到this的构造体的调用。通过运行结果可以看到一步一步的调用,最后this所代表的对象究竟是哪个。
- 【面向对象】对象和类
- 面向对象--类和对象
- 面向对象(类和对象)
- 面向对象-类和对象
- 面向对象----类和对象
- 类和对象
- vfp对象和类
- 类和对象
- Chap02:类和对象
- 类、对象和方法
- C#类和对象
- 第一章 类和对象
- 类和对象
- 对象、类和结构
- 类和对象
- 类和对象
- 类和对象
- 类和对象
- (c++)——内联函数
- 单个字符转ASCII码的两种方法(不涉及文件操作)
- C语言06 -- 函数多文件管理
- java 设计模式 工厂模式
- android:windowSoftInputMode属性使用
- 类和对象
- 二分图的一些基本概念
- 用项目管理的思维过生活-【不懂项目管理,还敢拼职场】书评
- hibernate的load()和get()的区别
- http:get&post方法
- iOS--学习博客
- [经典排序算法][集锦]
- cuda教程
- 谷歌官方建议笔记——ANR、JNI