Android day7

来源:互联网 发布:金百福珠宝软件是什么 编辑:程序博客网 时间:2024/06/06 09:37

第七次课了,我们进入到了Java学习的重要阶段:面向对象。以前这是我学习Java觉得最痛苦的地方,思维很难转过来,总觉得很抽象,可是明白之后就觉得轻松好多了。

知识点:

一、面向过程与面向对象

面向过程:先细节,后整体;

面向对象:先抽象,后具体。


二、类与对象

1、类:是一个模板,是一类东西的抽象(例如:水果)

2、对象:是类的实例(例如:苹果)

(1)对象的声明(产生):Fruit apple = new Fruit();(产生一个apple变量,一个Fruit对象)

(2)对象的引用:对象名(apple变量)是一个引用地址,存放在栈内存中;而类(Fruit)对象则存放在堆内存中。


三、类方法和实例方法,类变量与实例变量

类方法/变量:以static修饰(属于类)   Fruit.value/Fruit.value()
实例方法/变量:不以static修饰,属于实例(对象)
apple.value/apple.value()


四、方法的参数传递机制

java里面的参数传递机制:值传递
将实际参数的副本(复制品)传入方法内,参数本身不受影响

public static void main(String[] args) {// TODO Auto-generated method stubint a=100;int b=102;swap(a,b);System.out.println("交换结束后:a="+a+"  b="+b);}private static void swap(int a, int b) {// TODO Auto-generated method stubint temp=a;a=b;b=temp;System.out.println("swap方法里面的值:a="+a+"  b="+b);}
结果为:

swap方法里面的值:a=102  b=100
交换结束后:a=100  b=102


五、形参可变的方法

例如:public void test(int a, String... books)
相当于:public void test (int a, String[] books)(当不知道数组的类型时可以使用)

public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("请输入参与party的姓名");Scanner input = new Scanner(System.in);String names=input.nextLine();String[] nArray=names.split(",");party pa=new party();pa.info(nArray.length,nArray);//party ty=new party();//ty.info(10, "ni,wo");}//String[] namespublic void info(int i,String...names){System.out.println("参加人数:" + names.length);for (String name : names) {System.out.println(name+" ");}}
结果为:

请输入参与party的姓名
1,2,3
参加人数:3




六、方法递归

方法体内调用方法自身,称为方法递归

public static void main(String[] args) {// TODO Auto-generated method stubdiGui go=new diGui();int i=0;int a=100;go.diedai(i,a);//System.out.println(i);}private void diedai(int i,int a) {// TODO Auto-generated method stubif(a>=1){i+=a;a--;diedai(i,a);}if(a==0){System.out.println(i);}}


七、方法重载

同个类中包含多个方法名相同,形参不同,称为重载(overload),而方法的其他部分如修饰符、返回值,跟重载没有任何关系

八、构造器

构造器是一个特殊的方法,用于创建实例时执行初始化
必须包含一个或者多个构造器
系统会默认提供一个无参的构造器(如:Fruit apple = new Fruit();)不需要声明返回类型


作业:

实现一个具有良好封装性的中年Person类 
要求: 
1. 包含属性用户名和年龄; 
2. 对年龄比较合理的校验; 
3. 要求输入的用户名在6~8位之间;

import java.io.UnsupportedEncodingException;import java.util.Scanner;public class person {person a = new person();static String name;static int age;public static void main(String[] args) throws UnsupportedEncodingException {// TODO Auto-generated method stubScanner input=new Scanner(System.in);System.out.println("你好!请输入你的姓名:");String xingMing = input.next();int numOfxM = xingMing.getBytes("Gb2312").length;//尝试输出输入xingMing的位数//System.out.println(xingMing.getBytes("Gb2312").length);if(numOfxM>=6 && numOfxM<=8){setname(xingMing);}else{System.out.println("你的姓名输入有误,请确保你输入的姓名位数在6-8位之间!!!");return;}System.out.println("请输入你的年龄:");int nianLing = input.nextInt();if(nianLing>=40 && nianLing<=60){setage(nianLing);}else{System.out.println("请输入你的真实年龄!!!");return;}System.out.println("欢迎您!"+getname()+","+getage()+"岁后人生会有更亮丽的风景!!!");}private static void setname(String xingMing) {// TODO Auto-generated method stubname=xingMing;}private static String getname() {// TODO Auto-generated method stubreturn name;}private static void setage(int nianLing) {// TODO Auto-generated method stubage=nianLing;}private static int getage() {// TODO Auto-generated method stubreturn age;}}
结果为:

你好!请输入你的姓名:
biggin
请输入你的年龄:
55
欢迎您!biggin,55岁后人生会有更亮丽的风景!!!

0 0
原创粉丝点击