Java学习基础篇(-)类和对象
2016-06-16 12:07
603 查看
本科大三时自学过java,上研之后就基本没再碰过了,现在想要重新捡起来,所以把这些整理一下,主要是用来督促自己的学习,该资料整理来源于尚硅谷-佟刚的教学视频,仅用来学习。
面向对象的三大特征
-封装(Encapsulation)
-继承(Inheritance)
-多态(Poiymorphism)
类(class)是对一类事物的描述(抽象);对象(object)是该类实物的每个个体(实际存在),也称实例(instance)
【Java类】 属性(比如说一个人的姓名、身高等),也叫做类的成员变量,方法(比如说一个人学习的方法,工作的方法等),也叫类的成员函数
声明类
语法格式
[< 修饰符>] class < 类名>
{
[<属性声明>]
[<构造器声明>]
[<方法声明>]
}
说明:修饰符public:类可以被任意访问
类的正文要用{ }括起来
}
声明属性
语法格式:
[<修饰符>] 类型 < 属性名> [=初值] ;
说明:修饰符 private: 该属性只能由该类的方法访问。
修饰符 public: 该属性可以被该类以外的方法访问。
类型:任何基本类型,如int、boolean或任何类。
举例:
声明方法
语法格式:
<修饰符> <返回类型> <方法名>([< 参数表>]) {
[< 语句>]
}
说明: 修饰符:public,private,protected 等。
返回类型:return语句传递返回值。没有返回值:void。
对象的创建和使用
-使用 new +构造方法 创建一个新的对象;
-使用 “对象名.对象成员” 的方式访问对象成员(包括属性和方法);
如果创建了一个类的多个对象,对于类中定义的属性,每个对象都拥有各自的一套副本,且互不干扰
类的访问机制:
在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(static方法访问非static方法会编译出错)
在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员。
对象的创建
当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的都是变量类型都是引用类型。
对象的使用
创建新的对象之后,我们就可以使用“ 对象名.对象成员 ”的格式,来访问对象的成员
对象的生命周期
匿名对象
我们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象, 如:new Person().shout();
如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
我们经常将匿名对象作为实参传递给一个函数调用。
练习
1、创建一个Person类,其定义如下:
要求:(1)创建Person类的对象,设置该对象的name、age和sex属性,调用study方法,输出字符串“studying”,调用showAge()方法显示age值,调用addAge()方法给对象的age属性值增加 i 岁。
(2)创建第二个对象,执行上述操作,体会同一个类的不同对象之间的关系。
2、 利用面向对象的编程方法,设计类Circle计算圆的面积。
面向对象的三大特征
-封装(Encapsulation)
-继承(Inheritance)
-多态(Poiymorphism)
类(class)是对一类事物的描述(抽象);对象(object)是该类实物的每个个体(实际存在),也称实例(instance)
【Java类】 属性(比如说一个人的姓名、身高等),也叫做类的成员变量,方法(比如说一个人学习的方法,工作的方法等),也叫类的成员函数
声明类
语法格式
[< 修饰符>] class < 类名>
{
[<属性声明>]
[<构造器声明>]
[<方法声明>]
}
说明:修饰符public:类可以被任意访问
类的正文要用{ }括起来
}
声明属性
语法格式:
[<修饰符>] 类型 < 属性名> [=初值] ;
说明:修饰符 private: 该属性只能由该类的方法访问。
修饰符 public: 该属性可以被该类以外的方法访问。
类型:任何基本类型,如int、boolean或任何类。
举例:
public class Person{ private int age; //声明private变量 age public String name = “Lila”; //声明public变量 name }
声明方法
语法格式:
<修饰符> <返回类型> <方法名>([< 参数表>]) {
[< 语句>]
}
说明: 修饰符:public,private,protected 等。
返回类型:return语句传递返回值。没有返回值:void。
对象的创建和使用
-使用 new +构造方法 创建一个新的对象;
-使用 “对象名.对象成员” 的方式访问对象成员(包括属性和方法);
如果创建了一个类的多个对象,对于类中定义的属性,每个对象都拥有各自的一套副本,且互不干扰
类的访问机制:
在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(static方法访问非static方法会编译出错)
在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员。
对象的创建
class Person { int age; void shout() { System.out.println(“oh,my god! I am “ + age); } } Person p1 = new Person();//执行完后的内存状态
当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的都是变量类型都是引用类型。
对象的使用
创建新的对象之后,我们就可以使用“ 对象名.对象成员 ”的格式,来访问对象的成员
class TestPerson { public static void main(String[] args)//上面程序运行的内存布局如下图 { Person p1 = new Person(); Person p2 =new Person(); p1.age = -30; p1.shout(); p2.shout(); } }
对象的生命周期
匿名对象
我们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象, 如:new Person().shout();
如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
我们经常将匿名对象作为实参传递给一个函数调用。
练习
1、创建一个Person类,其定义如下:
要求:(1)创建Person类的对象,设置该对象的name、age和sex属性,调用study方法,输出字符串“studying”,调用showAge()方法显示age值,调用addAge()方法给对象的age属性值增加 i 岁。
(2)创建第二个对象,执行上述操作,体会同一个类的不同对象之间的关系。
public class Person { private String name; private int age; private int sex; void stduy(){ System.out.println("studying"); } void showAge(){ System.out.println("age:"+age); } int addAge(int i){ age=age+i; return(age); } public static void main(String[] args) { //创建对象1 Person p=new Person(); p.name="Tom"; p.age=3; p.sex=1; System.out.println("name:"+p.name+"\n"+"sex:"+p.sex); p1.study(); p.addAge(3); p.showAge();//age:6 //创建对象2 Person p1=new Person(); p1.name="Lili"; p1.age=30; p1.sex=2; System.out.println("name:"+p1.name+"\n"+"sex:"+p1.sex); p1.study(); p1.addAge(2); p1.showAge();//age:31 } }
2、 利用面向对象的编程方法,设计类Circle计算圆的面积。
public class CircleArea { double r; double area; double CircleAreaCaluate(){ area=2*Math.PI*Math.pow(r,2); return(area); } public static void main(String[] args) { CircleArea ca=new CircleArea(); ca.r=2.0; ca.area=0; ca.CircleAreaCaluate(); System.out.println("r="+ca.r+"\n"+"arae:"+ca.area); //r=2 //arae:25.132741228718345 } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树