类的创建以及类与对象的关系:
1、class 类名称{
属性
方法
}
类名称的首字母大写。
2、类是对某一类事物的描述,是抽象的,概念上的意义。对象是实际存在的该类对象的一个个体,也被称为实例。
代码:(通过对象去调用类里面的方法)
package com.jikexueyuan.ch02;
class Person{
String name = null;
int age = 0;
public void tell(){
System.out.println("姓名:"+name+" "+"年龄:"+age);
}
}
public class text18 {
public static void main(String[] args) {
/*
* 创建对象
* 赋值
* 对象.属性
* 对象.方法
*/
Person per = null;//声明
per = new Person();//实例化操作
// Person per = new Person();//声明并实例化
per.name = "张三";
per.age = 10;
per.tell();
/*
* Exception in thread "main" java.lang.NullPointerException
* 空指针异常
*/
}
}
内存分配:
面向对象的三大特征:
1、封装性(对外部不可见)
2、继承(扩展类的功能)
3、多态性(方法的重载 对象的多态性)
递归调用:
package com.jikexueyuan.ch02;
public class text19 {
public static void main(String[] args) {
System.out.println(addNum(100));
}
/*
* 从1+100;100+99+98+97+....+1
* @param num
* @return
*/
public static int addNum(int num){
if(num == 1){
return 1;
}
else{
return num+addNum(num - 1);
}
}
}
封装性:
1、封装性的产生目的:保护某些方法和属性不被外部所访问。
2、为属性和方法进行封装是通过关键字private声明的。实现该属性的set方法和get方法,为外部所访问。
代码:
package com.jikexueyuan.ch02;
class Person{
private int age;
private String name;
public int getAge(){
return age;
}
public void setAge(int a){
if(a>0&&a<150){
age = a;
}
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public void tell(){
//get是得到
System.out.println("姓名:"+name+" "+"年龄:"+age);
}
}
public class text20 {
public static void main(String[] args) {
Person per = new Person();
// per.age = -30;
// per.name = "张三";
per.setAge(30);//设置
per.setName("张三");
per.tell();
}
}
匿名对像:匿名对象就是没有名字的对象,如果程序只是使用一次该对象,可以使用匿名对象的方式。
构造方法:
1、格式:
访问修饰符 类名称(){
程序语句
}
2、注意点:
(1)构造方法名称必须与类名称一致。
(2)构造方法没有返回值。
3、构造方法主要是为类中的属性初始化。
4、每个类在实例化之后都会调用构造方法,如果没有构造方法,程序在编译的时候会创造一个无参的什么都不做的构造方法。
5、构造方法也可以重载。
代码:
package com.jikexueyuan.ch02;
class Person{
//构造方法
int age;
String name;
public Person(int a,String n){
age = a;
name = n;
System.out.println("姓名:"+name+" "+"年龄:"+age);
}
public Person(int a){
age = a;
System.out.println("年龄:"+age);
}
}
public class text21 {
public static void main(String[] args) {
Person per = new Person(30,"张三");
}
}