java类和对象的学习笔记_第1页
java类和对象的学习笔记_第2页
java类和对象的学习笔记_第3页
java类和对象的学习笔记_第4页
java类和对象的学习笔记_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 面向对象的程序设计(OOP) 2 类与对象的关系 类:共有形状特征放在一起类是对对象的描述,是创建对象的“模板”,是对象的抽象对象表示现实世界中某个具体的事物,是类的一个实例,是类的实例化结果3 面向对象三大特征封装,继承,多态Java中无函数都是方法class People /类/类的属性声明(变量定义)int age; /属性float height;/类的功能声明(方法定义)void printAge() /方法System.out.println(age); void updateAge(int a) /方法age=a; 4 对象的声明和创建声明对象与声明变量类似,如People

2、my;创建对象使用关键字new声明并创建People类对象类名对象名new类名();class Testpublic static void main(String args)People my; my=new People();People her=new People();People you=new People();5 对象的使用通过使用运算符“.”,对象可以实现对自己的变量访问和方法的调用对象名称.属性名;对象名称.方法名(); class Testpublic static void main(String args)People my; my=new People();my.ag

3、e=20; /运算符“.”访问变量和调用方法my.printAge();运行结果为:206 封装中提供了4种访问控制级别一维数组的声明访问修饰符有以下4个 1、public:共有的,最高的访问级别,类的public成员所有类的成员都可以访问 2、protected:受保护的,类的protected成员只能被该类的成员以及其子类成员访问。还可以被同一个包中其他类的成员访问 3、private:私有的,不对外公开,类的private成员只能被该类的成员访问,访问级别最低 4、默认,类的成员什么修饰符都没有,又叫包修饰符,只有类本身成员和当前包下类的成员可以访问。关于4种访问修饰符的说明访问修饰符的

4、访问范围从小到大为:privatedefaultprotectedpublic6 封装(Encapsulation)就是将不想或不该告诉他人的东西隐藏起来,将可以告诉他人的内容公开(隐藏对象的属性和方法的实现细节,只公开对外接口)封装的实质就是在将事物的细节进行隐藏的同时,对外公开其功能(方法)和特征(属性)。为什么需要封装? class Person public String name = ”tom”; public int age = 20; private void salaryInfo() System.out.println(“salary is secret”); public

5、class Child public static void main(String args) Person person = new Person(); person.age = 1000; 如何避免不合法数据的输入?解决方法 封装 隐藏对象中的字段 提供公共的操作方法 对输入的值进行限制封装的好处隐藏实现的细节只能通过规定方法访问数据方便修改的实现方便加入控制语句 如何实现封装封装:对外隐藏特征和行为的内部实现细节。封装有利于程序的安全使用private修饰符私有化类的属性或方法封装后的属性和方法只有在当前类中才可以使用,其他类是无法直接访问一个类中的私有的属性和方法的class Per

6、son private int salary; private String getInfo() 访问被封装的属性通过提供属性对应的getter/setter方法只有getter方法,无setter方法的属性为只读属性只有setter方法,无getter方法的属性为只写属性class Person private String name=”tom”; public int age=0; public String getName() return name; public void eat() 提供一个非私有化的方法,调用被封装的方法class Person private String na

7、me = tom ; public int age = 0; private void salaryInfo() System.out.println( salary is secret ); public void getSalaryInfo() /通过公共的方法调用私有的方法 salaryInfo(); package com.www.eec.vo;public class test public static void main(String args) for (int i=1;i=10;i+) System.out.println(i+n); package com.www.eec.

8、vo;public class test public static void main(String args) for (int i=1;i=10;i+) if(i=5) break;/跳出整个循环 System.out.println(i+n); 输出1234package com.www.eec.vo;public class test public static void main(String args) for (int i=1;i=10;i+) if(i=5) continue;/ 跳出本次循环 System.out.println(i+n); 输出123467897 数组数组

9、:数组是一组相关变量的集合(相同数据类型)(引用数据类型)怎么样去声明一个数组:INT num ; int num;给定数组长度 int num=new int10;静态初始化 int num=5,3,2,1,4数组排序:Array.sort(数组)package com.www.eec.vo;public class test /public只能放在主类,一个类只有一个public public static void main(String args) int num=null; num = new int10; System.out.println(数组长度为:+num.length);

10、 for (int i=0;inum.length;i+) System.out.println(numi); 输出00000000000替代写法package com.www.eec.vo;public class test public static void main(String args) int num=new int10; System.out.println(数组长度为:+num.length); for (int i=0;inum.length;i+) System.out.println(numi); 堆放对象 ,栈放变量Int num=null;栈内存 堆内存Num(01

11、010101) = 对象Num= new int10;/开辟数组的空间 (01010101) 数组的内容0,0,0,0,0引用地址是虚地址,虚地址指向具体的位置,只改变虚地址public class Array public static void main(String args)/声明一个数组并初始化int num=null;/数组是引用数据类型,默认为nullnum=new int10;/给数组的长度为10 num0,0,0,0,0,0,0,0System.out.println(数组的长度为:+num.length);/length是属性不是方法for (int i=0;inum.le

12、ngth;i+) /给数组赋值1,2,3,4,5,6.9numi=i;for(int j=0;jnum.length;j+)System.out.println(numj);/ 数组内容变化并输出package com.www.eec.vo;/JavaBean放在vo实体类下,包私有化封装get和set的方法public class Array public static void main(String args)int num1=null;int num2=null;num1=new int10;/开辟空间System.out.println(数组的长度为:+num1.length);fo

13、r (int i=0;inum1.length;i+)num1i=i;num2 = num1;num21=100;num22=101;for (int j=0;jnum1.length;j+)System.out.println(num1j+n);输出 0 100 101 3 4.9Int num1=null;Int num2=null;Num1=new int10;/开辟空间Num2=num1 把num1赋值给num2冒泡排序public class Array public static void main(String args)int num=5,3,2,1,4;for (int i=

14、0;inum.length-1;i+) /外层循环比的是轮数length-1for(int j=0;jnumj+1)int temp;temp = numj;numj=numj+1;numj+1=temp;for(int numm:num) /增强for循环System.out.println(numm+n);8 二维数组INT32 3行2列public class Array public static void main(String args)int num=1,2,3,6,5,4,7,8,9;System.out.println(num02); /第一行第三列System.out.pr

15、intln(=);for (int i=0;inum.length;i+)for(int j=0;jnumi.length;j+)System.out.println(numij+t);System.out.println();9 实例化实例化就是创建对象 类共有形状特征放在一起面向对象 类=属性=对象面向过程 对象=属性=类面向对象的三大特征 封装,继承,多态package com.www.eec.vo;public class person /public放在主类,声明person类,一般类声明开头大写,为了理解反过来运用,包含下面的属性和对象String personId; /定义属性S

16、tring personName; /定义属性int personAge; /定义属性char personSex; /定义属性public static void main(String args) /java中无函数都是方法不写默认person Person; /声明Person变量(大写)前面的person和类名一致,创建Person对象(大写字母)Person=new person();/ person()构造方法与类名同名,调用构造方法创建对象Person.personName=王小二;/对象Person的具体属性Person.personId=123213213213;Person

17、.personAge=18;System.out.println(姓名是:+Person.personName+身份证为:+Person.personId);创建对象引用设置的主方法(main),java中无函数都是方法,不写默认构造方法声明Animal的方法(叫的方法)方法的声明/访问权限修饰符 修饰符返回数据类型方法名字()public class Animal String name;String pz;int age;String color;String voice;public void bark()/声明叫的方法 System.out.println(名字是:+name+正在叫+

18、voice);public static void eat() /声明吃的方法,void无返回值,Animal dog=new Animal();=123; /实参才用变量传递System.out.println(名字是:++正在吃骨头);public static void main(String args) /只有写了主方法才能调用不写默认构造方法null 0Animal dog= new Animal();=豆豆; dog.voice=旺旺;dog.bark();/主方法调用,实参的传递形参接受实参,对象接受属性值Animal.eat();

19、/已经声明完成了实参的传递。封装类的方法调用类的入口public class Person01 String name;int age;/调用给int形参String address;public void personAll()Person01 person=new Person01();System.out.println(姓名是:+name+年龄是:+age+地址是:+address);public static void main (String args)/只有一个入口mainPerson01 person = new Person01();/person就是调用构造方法创造的对象p

20、=王小二;person.age=10;person.address=China;person.personAll();/对象调用的是属性值形参,static必须用点. P是实参package com.chinasofti.eec.vo;public class BankCard String username=admin; String pwd=88888; public static void main(String args) BankCard bc= new BankCard(); System.out.println(bc.username);

21、System.out.println(bc.pwd); 学生类package com.chinasofti.eec.vo;public class Student String name;String id;char sex;public void studentAll()System.out.println(姓名是:+name+学号是:+id+性别是:+sex);public static void main(String args)Student st1=new Student();=王小二;st1.id=121321;st1.sex=男;st1.studentAll();

22、10 权限Private default protected public同类 同包(子) 不同包(不子) 不同包(子) 当一个源文件中定义多个类,并且还有import语句和package语句时,一个源文件只能有一个public一个源文件可以有多个非public类源文件的名称应该和public类的类名保持一致如类名为Employee 则源文件命名为Employee.java如果一个类定义在某个包中,那么package语句应该在源文件的首行如果源文件包含import语句,那么应该放在package语句和类定义之间Import语句和package语句对源文件中定义的所有类都有效,在同一源文件中,不

23、能给不同的类不同的包声明Java包包主要用来对类和接口进行分类,当开发java时可以编写成千上万的类,因此必须对类和接口进行分类Import语句在java中如果给出一个完整的限定名,包括包名,类型,那么java编译器就可以很容易地定位到源代码或者类。Import语句就是用来提供一个合理的路径,使得编译器可以找到某各类BankCard.javapackage com.lwwwww.eec.vo; /vo实体类封装public class BankCard int banlace=5000;public int getBanlace(int money) /有参数的方法,get与set封装与取值r

24、eturn banlace+money;public static void main(String args)BankCard bc = new BankCard();System.out.println(bc.getBanlace(); Test.javapackage com.www.eec.test;import com.lwwwww.eec.vo.*;public class Test public static void main(String args)BankCard bc=new BankCard();System.out.println(余额为:+bc.getBanlace

25、(000);/000为money的实参包的封装用get和set方法,私有化。封装对象直接调用属性BankCard.javapackage com.lwwwwww.eec.vo;public class BankCard private String userName=admin;private String pwd=888888;int banlace=5000;public int getBanlace(int money)return banlace+money;public String getUserName()return userName;public void setUserName(String userName)this.userName=userName;public static void main(String args)BankCard bc = new BankCard();System.out.println(bc.getBanlace(); Test.javapackage com.www.eec.test;import com.lwwwww.eec.vo.*;public class Test public static void main(String args)BankCard bc=new

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论