欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java,

来源: javaer 分享于  点击 197 次 点评:78

java,


一.面向对象和面向过程

一 面向对象和面向过程之间的区别
	面向对象和面向过程都是一种思想,一种思维方式
	面向过程: " 我应该如何实现?"然后一步一步实现就可以了
	面向对象: " 我应该找谁来完成?" 不关注对象如何实现,只关注对象
	
二.面向对象的优点:
	1)更贴合与现实生活
	2)面向对象体现与管理者,面向过程体现与执行者
	3)可以复杂的问题简单化

三.如何使用面向对象的思维方式进行编程:
	提供了两个概念实现面向对象编程: 类   对象
	类:->自定义的类  一些列事物的模板,一些列事物抽象出来的共性,吧这些共性定义为自定义类|模板类
	对象:现实生活中真实存在的事物,构建需要根据对象的图纸|模板类构建对象
	
四:自定义类
	定义手机模板类:
		1)手机有什么特征|特性|属性:颜色,尺寸,品牌..   属性--名词---成员变量
		2)手机能做什么?打电话,上网,玩游戏..			  功能--动词---成员方法 --不加static的方法
		
		public class 类名{
			//成员变量
			修饰符 数据类型 变量名 =赋值;
			//成员方法
			public 返回值类型|void 方法名(参数列表){
				...
		        }
		}

实例
package com.shsxt.object;
public class Texttravel {

    public static void main(String[] args) {
	Country count=new Country();
	count.name="日本";
	count.hotel="速7";
	
	Secretaty sec=new Secretaty();
	//找哪个秘书
	sec.name="halo";
	sec.bookTicket(count.name);//告诉秘书travel的国家,秘书安排行程,String类型
	sec.bookhotel(count);//告诉秘书哪个国家,秘书找酒店,自己定义的引用类型
}
}
class Secretaty {
String name;
public void bookTicket(String countryname){
	System.out.println("你的秘书"+name+"正在为您预定去"+countryname+"的机票");
}
public void bookhotel(Country country){
	System.out.println("你的秘书"+name+"正在为您预定去"+country.name+"de"+country.hotel+"的机票");
}
}
class Country {
String name;
String hotel;

}
输出结果:

二、 构造器|构造函数|构造方法

new做3件事情:
1.堆中开辟空间,成员属性跟随对象进入堆内存并附默认值
2.调用构造器为对象初始化信息
3.将地址返回给引用

构造器:
特殊的方法,作用就是用来为对象初始化对象信息,不是用来创建对象
定义:
修饰符  类名([参数列表]){
	....
}
构造器没有返回值,不需要void,可以写return但是不必要
使用:
只能跟随new一起使用,没有办法调用
构造器不能和static,fianl,abstract一起使用

如果没有自定义构造器,编译器会自动为你添加一个空构造
如果存在自定义构造器,编译器都不会再为你提供任何构造器

构造器也是方法,可以构造器的重载,根据创建对象后面的()-->构造器的参数列表
以后定义自定义模板类,最好至少提供一个构造

实例
package com.shsxt.constructor;
构造器,初始化对象
public class Textconstructor {

   public static void main(String[] args) {
	Dog dog=new Dog("张二狗","柴犬","土黄色");//测试构造器的重载
	Dog dog2=new Dog();
	Dog dog3=new Dog("阿黄");
}
}

class Dog{
String name;
String color;
String type;

public Dog(){
	System.out.println("空构造器");
}


public Dog(String dogName){
	name=dogName;
	System.out.println(name);
}

public Dog(String dogName,String dogType,String dogColor){
	name=dogName;
	type=dogType;
	color=dogColor;
	System.out.println(color+"---"+name+"---"+type);
	
}

public void Dog(){
	System.out.println(color+"---"+name+"---"+type);//构造器是随new对象使用的,不能被调用,但是方法可以
}

}
输出结果:

三、this关键字

this指代当前对象(new的对象),代表对象的地址
调用本类中的其他构造器
	this([参数列表]); 
	要求再构造器的首行使用this调用其他构造器
	两个构造器不能相互调用,会造成死循环
区分同名变量问题
	区分成员变量和局部变量之间同名的问题
	构造器中区分成员变量和参数之间同名问题.默认就近原则,如果调用成员,this.属性名,因为this中存放的是当前调用构造器的对象的地址
	this再成员方法中指代当前调用成员方法的对象
	如果不存同名变量问题,在使用成员变量的时候默认前面省略了this,this可以省略

实例:
package com.shsxt.thistext;

public class Textthis {

public static void main(String[] args) {
	Person per=new Person("hanlo",18,181);
	System.out.println(per);//p存储的地址
	per.info(124);
}
}

class Person{
String name;
int age;
int height;

public Person(String name,int age) {
	//this();不能互相调用
	this.name=name;
	this.age=age;
	System.out.println(this);//与p地址相同,证明this存储的是当前对象的地址
	System.out.println(name+"---"+age);
}
public Person(String name,int age,int height) {
	this(name,age);  
	this.height=height;
	//this(name,age);调用上面构造器,且只能写在最上面
	System.out.println(name+"---"+age+"---"+height);
	
}
public void info(int age){
	//System.out.println(name+"--"+age+"--"+height);就近原则,打印124
	System.out.println(this.name+"--"+this.age+"--"+this.height);//区分成员变量,打印成员变量
	this.haha();
}

public void haha(){
	System.out.println(name);//没有相同变量名,默认成员变量
}

}
输出结果:

相关文章

    暂无相关文章
相关栏目:

用户点评